Extract Target Power Generation Facilities from AESO
Alberta Electric System Operator (AESO) publishes electricity generation data in Alberta http://ets.aeso.ca
Download all monthly data files into Folder “Data”.
import pandas as pd
import numpy as np
import glob
files = glob.glob('./data/*.csv')
Assigned column names
col_names = ['PoolID','AssetType','AssetID',
'Hour1','Hour2','Hour3','Hour4','Hour5','Hour6','Hour7','Hour8','Hour9','Hour10',
'Hour11','Hour12','Hour13','Hour14','Hour15','Hour16','Hour17','Hour18','Hour19','Hour20',
'Hour21','Hour22','Hour23','Hour24','daylight']
Read all 12 month data, and create a column called Month, and assign an unqiue identifier for each file when reading the data file.
After append, a list object is created, then pd.cancat creates a data frame.
list_ = []
for i, file in enumerate(files,1):
data = pd.read_csv(file,names = col_names, low_memory=False)
data['month'] = i
list_.append(data)
df_all = pd.concat(list_, ignore_index=True)
Create a target facility data file, convert hourly electricity data into numeric
Target =['BR3','BR4','BR5','MKR1','PH1','RB5','RL1','SH1','SH2','VVW1','VVW2','EC04','CL01']
df = df_all[df_all['AssetID'].isin(Target)]
col = ['Hour1','Hour2','Hour3','Hour4','Hour5','Hour6','Hour7','Hour8','Hour9','Hour10',
'Hour11','Hour12','Hour13','Hour14','Hour15','Hour16','Hour17','Hour18','Hour19','Hour20',
'Hour21','Hour22','Hour23','Hour24','daylight']
df[col] = df[col].apply(pd.to_numeric, errors = "coerce",axis = 1)
Create a new column to sum hourly data to daily for each facility
AESO = df.copy()
AESO['daylight'].fillna(0, inplace=True)
AESO['Total'] = AESO[col].apply(sum,axis = 1)
Summarized the daily total into monthly total
summary = AESO.groupby(['AssetID','month'])[['Total']].sum()
summary.to_csv('Summary_2020.csv')