def get_demand(year, espini): if espini: demand_filename = '/home/malcolm/uclan/data/electricity/espeni.csv' demand = readers.read_espeni(demand_filename, year) electric = demand / 1000000.0 else: # TODO - could we include the actual Scottish demand here? scotland_factor = 1.1 # read historical electricity demand for reference year if year == '2009': demand_filename = '/home/malcolm/uclan/data/electricity/demanddata_2009.csv' else: demand_filename = '/home/malcolm/uclan/data/ElectricityDemandData_' + year + '.csv' demand_ref = readers.read_electric_hourly(demand_filename) # Convert to TWh electric = demand_ref[ 'ENGLAND_WALES_DEMAND'] * scotland_factor / 1000000.0 return electric
plt.ylabel('Solar PV') plt.show() # years = ['2018'] years = ['2015', '2016', '2017', '2018', '2019'] # read historic demand and generation for England and Wales demand_years = {} wind_years = {} pv_years = {} max_demand = 0.0 max_wind = 0.0 max_pv = 0.0 for year in years: electric_filename = '/home/malcolm/uclan/data/ElectricityDemandData_' + year + '.csv' electric_data = readers.read_electric_hourly(electric_filename) # convert from hourly to daily electric_data = electric_data.resample('D').sum() # don't scale by 1.1 for including Scotland because only got generation for # England and Wales demand = electric_data['ENGLAND_WALES_DEMAND'] * 1.1 if max_demand < demand.sum(): max_demand = demand.sum() demand_years[year] = demand # extract wind wind = electric_data['EMBEDDED_WIND_GENERATION'] if max_wind < wind.sum(): max_wind = wind.sum() wind_years[year] = wind # extract solar pv = electric_data['EMBEDDED_SOLAR_GENERATION']
# main program # demand_filename = '/home/malcolm/uclan/tools/python/output/2018/heatCopRef2018weather2018HDD15.5.csv' # demand_filename = '/home/malcolm/uclan/tools/python/output/2018/heatCopRef2018weather2018Ruhnau.csv' # demand_filename = '/home/malcolm/uclan/tools/python/output/2018/heatCopRef2018weather2018Watson.csv' # demand_filename = '/home/malcolm/uclan/tools/python/output/2018/Ref2018Weather2018Sbdew.csv' # demand_filename = '/home/malcolm/uclan/tools/python/output/2018/Ref2018Weather2018Sbdew.csv' demand_filename = '/home/malcolm/uclan/tools/python/scripts/heat/output/2018/Ref2018Weather2018Rbdew.csv' supply_filename = '/home/malcolm/uclan/data/ElectricityDemandData_2018.csv' # read the electricity demand demand = readers.read_demand(demand_filename) print('DEMAND') print(demand.index) print(demand) electric = readers.read_electric_hourly(supply_filename) # factor the generation to match the demand # (imagine we added just enough solar and wind annually and then we can # look at net to see how much storage we might need ) supply = electric['EMBEDDED_WIND_GENERATION'] + electric[ 'EMBEDDED_SOLAR_GENERATION'] # print('Annual supply before up sample {}'.format(supply.sum()) ) # supply = supply.resample('60min').pad() # supply = upsample_df(supply.resample,'60min') # print('Annual supply after up sample {}'.format(supply.sum()) ) # supply = supply.resample('60min') print('SUPPLY') print(supply.index) print(supply) supply = supply * (demand.sum() / supply.sum())
d2018['percent_other'] = 0.14 # fes 2019 Net Zero 2050 d2018['boiler_efficiency'] = 0.85 # hydrogen boiler efficiency d2018['ev_annual_energy'] = 93.38 # annual ev energy TWh fes Net Zero 2050 d2018['electricity_residential'] = 109 # fes 2019 Net Zero 2050 d2018['electricity_industry'] = 175 # fes 2019 Net Zero 2050 d2018['hybrid_threshold'] = 5.0 # temperature below which hybrid heat pumps # switch completely to hydrogen to balance # the grid model['2018'] = d2018 scotland_factor = 1.1 # ( Fragaki et. al ) # read historical electricity demand for reference year demand_filename = '/home/malcolm/uclan/data/ElectricityDemandData_' + reference_year + '.csv' demand_ref = readers.read_electric_hourly(demand_filename) electric_ref = demand_ref['ENGLAND_WALES_DEMAND'] * scotland_factor # read reference year electric heat series based on purely resistive heating # so that it can be removed from the reference year series. demand_filename = '/home/malcolm/uclan/tools/python/scripts/heat/output/{0:}/GBRef{0:}Weather{0:}I-Sbdew_resistive.csv'.format( reference_year) ref_resistive_heat = readers.read_demand(demand_filename) # read weather year electric heat for ref year 2050 demand_filename = '/home/malcolm/uclan/tools/python/scripts/heat/output/{0:}/GBRef2050Weather{0:}I-Sbdew.csv'.format( weather_year) demand = readers.read_copheat(demand_filename, ['electricity', 'heat', 'temperature'])
from datetime import datetime import pytz import matplotlib.pyplot as plt import statsmodels.api as sm # custom code import stats import readers from misc import upsample_df # main program # supply_filename = '/home/malcolm/uclan/data/ElectricityDemandData_2018.csv' demand_filename = '/home/malcolm/uclan/data/ElectricityDemandData_' # read in the demand electric15 = readers.read_electric_hourly(demand_filename + '2015.csv') demand15 = electric15['ENGLAND_WALES_DEMAND'] electric16 = readers.read_electric_hourly(demand_filename + '2016.csv') demand16 = electric16['ENGLAND_WALES_DEMAND'] electric17 = readers.read_electric_hourly(demand_filename + '2017.csv') demand17 = electric17['ENGLAND_WALES_DEMAND'] electric18 = readers.read_electric_hourly(demand_filename + '2018.csv') demand18 = electric18['ENGLAND_WALES_DEMAND'] electric19 = readers.read_electric_hourly(demand_filename + '2019.csv') demand19 = electric19['ENGLAND_WALES_DEMAND'] #print(demand19.nsmallest()) # replace zeros with NaN #demand19 = demand19.replace(0, float("NaN")) # replace missing values (NaN) by interpolation #demand19 = demand19.interpolate()
import statsmodels.api as sm # custom code import stats import readers from misc import upsample_df # main program # Reference Year = 2018 # Weather Year = 2017 scotland_factor = 1.1 # ( Fragaki et. al ) # read 2017 historical electricity demand demand_filename = '/home/malcolm/uclan/data/ElectricityDemandData_2017.csv' demand17 = readers.read_electric_hourly(demand_filename) electric17 = demand17['ENGLAND_WALES_DEMAND'] * scotland_factor # read 2018 historical electricity demand demand_filename = '/home/malcolm/uclan/data/ElectricityDemandData_2018.csv' demand18 = readers.read_electric_hourly(demand_filename) electric18 = demand18['ENGLAND_WALES_DEMAND'] * scotland_factor # read 2018 electric heat series based on purely resistive heating so that # it can be removed from the 2018 series. (ref year method) demand_filename = '/home/malcolm/uclan/tools/python/scripts/heat/output/2018/GBRef2018Weather2018I-Sbdew_resistive.csv' resistive_heat = readers.read_demand(demand_filename) # read 2017 electric heat for ref year 2018