{"cells":[{"metadata":{},"cell_type":"markdown","source":"It is required to calculate emissions factor on a time slice with a small average emission factor in the past.\n\n> Bonus points for smaller time slices of the average historical emissions factors, such as one per month for the 12-month period.\n\nhttps://www.kaggle.com/c/ds4g-environmental-insights-explorer/overview/evaluation\n\nI\"ll try to calculate monthly averaged simplified emissions factor."},{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"from datetime import datetime, timedelta\nimport glob\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport os\nimport pandas as pd\nimport re\nimport tifffile as tiff ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# List up given Sentinel 5P OFFL NO2"},{"metadata":{"trusted":true},"cell_type":"code","source":"s5p_no2_timeseries = glob.glob('../input/ds4g-environmental-insights-explorer/eie_data/s5p_no2/*')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"data_monthly_divided = {}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for data in s5p_no2_timeseries:\n     \n    data_date =  datetime.strptime(data[:77], '../input/ds4g-environmental-insights-explorer/eie_data/s5p_no2/s5p_no2_%Y%m')\n    data_date = data_date.strftime(\"%Y/%m\")\n    \n    if not data_date in data_monthly_divided.keys():\n        data_monthly_divided[data_date] = []\n        \n    data_monthly_divided[data_date].append(data)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for key in sorted(data_monthly_divided.keys()):\n    print(\"number of data in\" , key, \"is\", len(data_monthly_divided[key]))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"There seems  more data than days in each month."},{"metadata":{},"cell_type":"markdown","source":"# Calculate Quanity of Electricity Generated"},{"metadata":{"trusted":true},"cell_type":"code","source":"#From https://www.kaggle.com/paultimothymooney/overview-of-the-eie-analytics-challenge\n\ndef split_column_into_new_columns(dataframe,column_to_split,new_column_one,begin_column_one,end_column_one):\n    for i in range(0, len(dataframe)):\n        dataframe.loc[i, new_column_one] = dataframe.loc[i, column_to_split][begin_column_one:end_column_one]\n    return dataframe","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"power_plants = pd.read_csv('/kaggle/input/ds4g-environmental-insights-explorer/eie_data/gppd/gppd_120_pr.csv')\npower_plants = split_column_into_new_columns(power_plants,'.geo','latitude',50,66)\npower_plants = split_column_into_new_columns(power_plants,'.geo','longitude',31,48)\npower_plants['latitude'] = power_plants['latitude'].astype(float)\na = np.array(power_plants['latitude'].values.tolist()) # 18 instead of 8\npower_plants['latitude'] = np.where(a < 10, a+10, a).tolist() ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"power_plants_df = power_plants.sort_values('capacity_mw',ascending=False).reset_index()\npower_plants_df[['name','latitude','longitude','primary_fuel','capacity_mw','estimated_generation_gwh']][29:30]\nquantity_of_electricity_generated = power_plants_df['estimated_generation_gwh'][29:30].values\nprint('Quanity of Electricity Generated: ', quantity_of_electricity_generated)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Calculate simplified emissions factor"},{"metadata":{"trusted":true},"cell_type":"code","source":"month = []\nemissions = []\n\nfor key in sorted(data_monthly_divided.keys()):\n    average_emissions = []\n    datas = data_monthly_divided[key]\n    for data in datas:\n        \n        #You can use your model here!!!\n        average_emission = np.nanmean(tiff.imread(data))\n        \n        average_emissions.append(average_emission)\n    \n    month.append(key)\n    emissions.append(np.nanmean(average_emissions))           ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"results = pd.DataFrame(columns=['month', 'emission','emisson factor'])\nresults = pd.DataFrame({'emission':emissions,\n                       'emission factor':emissions/quantity_of_electricity_generated},\n                    index=month)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"results","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"results[\"emission factor\"].plot()\nplt.title('Monthly Mean Simplified Emissions Factor in Puerto Rico')","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}