{"cells":[{"metadata":{},"cell_type":"markdown","source":"<h3>The purpose of the viz is to capture movements of metrics between years. Below we are just showcasing the average CO2 Emmisions and the average MWh Consumption for a selected number of Industries for 2019 and 2020."},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"import numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nfrom pandas_profiling import ProfileReport # quick EDA\nimport matplotlib.pyplot as plt # plotting\nimport seaborn as sns # plotting\n\nimport matplotlib as mpl # for plotting\nfrom matplotlib import cm # for colours\nimport matplotlib.pyplot as plt\nfrom matplotlib.offsetbox import OffsetImage, AnnotationBbox\nimport matplotlib.image as mpimg\nimport matplotlib.ticker as ticker\n\npd.set_option('display.max_columns', None) # display any number of columns\npd.set_option('display.max_colwidth', None) # number of characted to display\n\n# hierarchy: ('2020', '2019', '2018') -> ('climate', 'water') -> ('data', 'dictionary', 'corp_meta')\n# 3 X 2 X 3 : 18 datasets\ncorp_dict = {'2020':{'climate':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/2020_Full_Climate_Change_Dataset.csv', \n                                'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/Full_Corporations_Response_Data_Dictionary copy.csv', \n                                'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Climate Change/2020_Corporates_Disclosing_to_CDP_Climate_Change.csv'}, \n                    'water':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Water Security/2020_Full_Water_Security_Dataset.csv', \n                             'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/Corporations_Disclosing_to_CDP_Data_Dictionary.csv', \n                             'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/2020_Corporates_Disclosing_to_CDP_Water_Security.csv'}},\n             \n             '2019':{'climate':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/2019_Full_Climate_Change_Dataset.csv', \n                                'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/Full_Corporations_Response_Data_Dictionary copy.csv', \n                                'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Climate Change/2019_Corporates_Disclosing_to_CDP_Climate_Change.csv'}, \n                    'water':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Water Security/2019_Full_Water_Security_Dataset.csv', \n                             'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/Corporations_Disclosing_to_CDP_Data_Dictionary.csv', \n                             'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/2019_Corporates_Disclosing_to_CDP_Water_Security.csv'}}, \n             \n             '2018':{'climate':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/2018_Full_Climate_Change_Dataset.csv', \n                                'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Climate Change/Full_Corporations_Response_Data_Dictionary copy.csv', \n                                'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Climate Change/2018_Corporates_Disclosing_to_CDP_Climate_Change.csv'}, \n                    'water':{'data':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Responses/Water Security/2018_Full_Water_Security_Dataset.csv', \n                             'dictionary':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/Corporations_Disclosing_to_CDP_Data_Dictionary.csv', \n                             'corp_meta':'../input/cdp-unlocking-climate-solutions/Corporations/Corporations Disclosing/Water Security/2018_Corporates_Disclosing_to_CDP_Water_Security.csv'}}}\n\n# Read Data\ndf_climate_2020, df_climate_data_dict, df_climate_corp_meta_2020 = map(lambda x: pd.read_csv(x, low_memory=False), corp_dict['2020']['climate'].values())\ndf_climate_2019, df_climate_data_dict, df_climate_corp_meta_2019 = map(lambda x: pd.read_csv(x, low_memory=False), corp_dict['2019']['climate'].values())\n\n# append the two datasets\ndf_climate = pd.concat([df_climate_2020, df_climate_2019])\n\n# Candidate questions\nq1 = 'C6.1_C1_What were your organizationâ€™s gross global Scope 1 emissions in metric tons CO2e? - Gross global Scope 1 emissions (metric tons CO2e)'\n\n# q2_1 = 'C7.1a_C1_Break down your total gross global Scope 1 emissions by greenhouse gas type and provide the source of each used greenhouse warming potential (GWP). - Greenhouse gas'\n# q2_2 = 'C7.1a_C2_Break down your total gross global Scope 1 emissions by greenhouse gas type and provide the source of each used greenhouse warming potential (GWP). - Scope 1 emissions (metric tons of CO2e)'\n\nq3 = 'C8.2a_C3_Report your organizationâ€™s energy consumption totals (excluding feedstocks) in MWh. - MWh from non-renewable sources'\n\n\ndf_climate_reduced = df_climate.loc[(df_climate['data_point_name'].isin([q1, q3])) & (df_climate['row_number'] == 1), \n               ['account_number', 'organization', 'survey_year', 'data_point_name', 'response_value']].\\\n                sort_values(['account_number', 'survey_year', 'data_point_name']).copy()\n\n\ndf_climate_reduced_dropna = df_climate_reduced.set_index(['account_number', 'organization', 'data_point_name', 'survey_year']).unstack(['survey_year']).dropna().stack()\ndf_climate_reduced_dropna = df_climate_reduced_dropna.unstack('data_point_name').reset_index()\ndf_climate_reduced_dropna.columns = ['account_number', 'organization', 'survey_year', 'emissions', 'consumption']\n\ndf_climate_reduced_merge = \\\n    pd.merge(df_climate_reduced_dropna, df_climate_corp_meta_2020[['account_number', 'primary_industry', 'primary_questionnaire_sector']], on='account_number', how='inner')\n\ndf_climate_reduced_merge['emissions'] = pd.to_numeric(df_climate_reduced_merge['emissions'])\ndf_climate_reduced_merge['consumption']  = pd.to_numeric(df_climate_reduced_merge['consumption'])\n\ndf_climate_reduced_merge_industry = df_climate_reduced_merge.groupby(['primary_industry', 'survey_year'])[['emissions', 'consumption']].mean().dropna().reset_index()\n\ncolours = {'Power generation':'#4868E4', 'Transportation services':'#F39D2A', 'Infrastructure':'#290D30', \n           'Fossil Fuels':'#22A166', 'Materials':'#A4162C', 'Food, beverage & agriculture':'#1E3EFE'}","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true,"_kg_hide-input":true},"cell_type":"markdown","source":"<h2> This visualisation portrays Energy consumption and Emissions averages for 2020 and 2019 by industry.</h2>\n\nLower CO2 emissions are shown across the board for 2020, but in the case of Power Generation and Infrastructure, a clear reduction in energy consumed in 2020 is displayed with respect to 2019 (possibly linked to Covid lock-down rules), meaning that not necessarily the lower emissions are linked to sources that are more carbon efficient. \n\nThe transportation sector, Food&beverages instead, show stable levels of energy consumption generated linked to less carbon emissions, suggesting a switch to \"greener\" energy sources. Materials shows an even more promising trend: more energy was consumed in 2020, but less emissions were generated."},{"metadata":{"trusted":true,"_kg_hide-input":true},"cell_type":"code","source":"fig = plt.figure()\nfig.set_size_inches(16, 9)\nax = plt.axes()\n\n# for key in df_climate_reduced_merge_industry['primary_industry'].unique():\nfor key in ['Power generation', 'Transportation services', 'Infrastructure', 'Fossil Fuels', 'Materials', 'Food, beverage & agriculture']:\n    \n    key2 = key\n    \n    if key2 not in ['Power generation', 'Infrastructure', 'Food, beverage & agriculture']:\n        key2 = key2 + '\\n\\n'\n     \n    if key2 == 'Food, beverage & agriculture':\n        key2 = 'Food, beverage & agriculture\\n'\n\n    \n    tmp = df_climate_reduced_merge_industry[df_climate_reduced_merge_industry['primary_industry']==key].copy()\n    x, x_end = tmp['emissions']\n    y, y_end = tmp['consumption']\n\n    ax.scatter(y=y, x=x, c='w', s=1)\n    ax.scatter(y=y_end, x=x_end, c=colours[key], s=200)\n\n    ax.annotate(key2 , size=14,  xy=(x_end,y_end), xytext=(x,y), \n                arrowprops={'arrowstyle': '-|> , head_width=0.5', 'lw': 2.5, 'color': colours[key]}, va='center')\n\nax.set_ylabel('Average Consumption in MWh', size=15, fontweight='bold')\nax.set_xlabel('Average Emissions in CO2', size=15, fontweight='bold')\nax.set_title('Industry movement from 2019 to 2020', size=20)\n\nax.tick_params(axis='x', labelsize=15)\nax.tick_params(axis='y', labelsize=15)\n\nax.set_xlim(xmin=0)\nax.set_ylim(ymin=0)\n\n# ax.set_xlim(xmax=1_000_000)\n# ax.set_ylim(ymax=5_000_000)\n\n\nax.xaxis.set_major_formatter(ticker.EngFormatter())\nax.yaxis.set_major_formatter(ticker.EngFormatter())\n\nplt.show();","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-input":true,"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":4}