Skip to content

Commit

Permalink
fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Sven Eggimann authored and Sven Eggimann committed Jun 1, 2018
1 parent 4e896f9 commit 5f3da4d
Show file tree
Hide file tree
Showing 9 changed files with 8 additions and 91 deletions.
29 changes: 0 additions & 29 deletions energy_demand/geography/weather_region.py
Expand Up @@ -569,35 +569,6 @@ def __init__(
model_yeardays=assumptions.model_yeardays,
sectors=[sector])

def get_shape_peak_yd_factor(demand_yd):
"""From yd shape calculate maximum relative yearly service demand
which is provided in a day
Arguments
----------
demand_yd : shape
Demand for energy service for every day in year
Return
------
max_factor_yd : float
yd maximum factor
Note
-----
If the shape is taken from heat and cooling demand the assumption is made that
HDD and CDD are directly proportional to fuel usage
"""
# Total yearly demand
tot_demand_y = np.sum(demand_yd)

# Maximum daily demand
max_demand_d = np.max(demand_yd)

max_factor_yd = max_demand_d / tot_demand_y

return max_factor_yd

def get_fuel_shape_heating_hp_yh(tech_lp_y_dh, tech_stock, rs_hdd_cy, model_yeardays):
"""Convert daily shapes to houly based on load for heatpump
Expand Down
8 changes: 3 additions & 5 deletions energy_demand/main.py
Expand Up @@ -3,11 +3,9 @@
TODO: REMOVEP EAK FACTORS
TODO: DISAGGREGATE SERVICE SECTOR HEATING DEMANDS WITH FLOOR AREA FOR SECTORS
TODO: Write all metadata of model run restuls to txt
TODO: Related ed to houses & householdsize
TODO: data loading, load multiple years for real elec data
TODO: WHAT ABOU NON_RESIDENTIAL FLOOR AREA: FOR WHAT?
TODO :CHECK LOAD PRIFILE TECH TYPE NAMES
TODO: shape_peak_yd_factor
Noe: Related ed to houses & householdsize
Noe: WHAT ABOU NON_RESIDENTIAL FLOOR AREA: FOR WHAT?
TODO: REMOVE ALL PEAK RELATED STUFF
"""
import os
Expand Down
2 changes: 0 additions & 2 deletions energy_demand/profiles/generic_shapes.py
Expand Up @@ -16,8 +16,6 @@ def flat_shape(nr_of_days=365):
Dh shape for peak day
flat_shape_y_dh : array
Shape non peak dh
shape_peak_yd_factor : float
Factor peak yd (is only passed through)
flat_shape_yd : array
Shape yd for non peak
"""
Expand Down
8 changes: 0 additions & 8 deletions energy_demand/read_write/data_loader.py
Expand Up @@ -748,8 +748,6 @@ def rs_collect_shapes_from_txts(txt_path, model_yeardays):
os.path.join(txt_path, str(enduse) + str("__") + str('shape_peak_dh') + str('.txt')))
shape_non_peak_y_dh = read_data.read_np_array_from_txt(
os.path.join(txt_path, str(enduse) + str("__") + str('shape_non_peak_y_dh') + str('.txt')))
shape_peak_yd_factor = float(read_data.read_np_array_from_txt(
os.path.join(txt_path, str(enduse) + str("__") + str('shape_peak_yd_factor') + str('.txt'))))
shape_non_peak_yd = read_data.read_np_array_from_txt(
os.path.join(txt_path, str(enduse) + str("__") + str('shape_non_peak_yd') + str('.txt')))

Expand All @@ -762,7 +760,6 @@ def rs_collect_shapes_from_txts(txt_path, model_yeardays):
'shape_non_peak_y_dh': shape_non_peak_y_dh_selection}

rs_shapes_yd[enduse] = {
'shape_peak_yd_factor': shape_peak_yd_factor,
'shape_non_peak_yd': shape_non_peak_yd_selection}

return rs_shapes_dh, rs_shapes_yd
Expand Down Expand Up @@ -809,10 +806,6 @@ def ss_collect_shapes_from_txts(txt_path, model_yeardays):
os.path.join(
txt_path,
str(joint_string_name) + str("__") + str('shape_non_peak_y_dh') + str('.txt')))
shape_peak_yd_factor = float(read_data.read_np_array_from_txt(
os.path.join(
txt_path,
str(joint_string_name) + str("__") + str('shape_peak_yd_factor') + str('.txt'))))
shape_non_peak_yd = read_data.read_np_array_from_txt(
os.path.join(
txt_path,
Expand All @@ -829,7 +822,6 @@ def ss_collect_shapes_from_txts(txt_path, model_yeardays):
'shape_non_peak_y_dh': shape_non_peak_y_dh_selection}

ss_shapes_yd[enduse][sector] = {
'shape_peak_yd_factor': shape_peak_yd_factor,
'shape_non_peak_yd': shape_non_peak_yd_selection}

return dict(ss_shapes_dh), dict(ss_shapes_yd)
Expand Down
7 changes: 0 additions & 7 deletions energy_demand/read_write/write_data.py
Expand Up @@ -517,7 +517,6 @@ def create_txt_shapes(
path_txt_shapes,
shape_peak_dh,
shape_non_peak_y_dh,
shape_peak_yd_factor,
shape_non_peak_yd
):
"""Function collecting functions to write out arrays
Expand All @@ -535,12 +534,6 @@ def create_txt_shapes(
str(end_use) + str("__") + str('shape_non_peak_y_dh') + str('.txt')),
shape_non_peak_y_dh)

write_array_to_txt(
os.path.join(
path_txt_shapes,
str(end_use) + str("__") + str('shape_peak_yd_factor') + str('.txt')),
np.array([shape_peak_yd_factor]))

write_array_to_txt(
os.path.join(
path_txt_shapes,
Expand Down
14 changes: 3 additions & 11 deletions energy_demand/scripts/s_rs_raw_shapes.py
Expand Up @@ -65,9 +65,6 @@ def get_hes_load_shapes(
Returns
-------
shape_peak_yd_factor : float
Peak day demand (Calculate factor which can be used to
multiply yearly demand to generate peak demand)
shape_peak_yh : float
Peak demand of each hours of peak day
Expand Down Expand Up @@ -119,9 +116,6 @@ def get_hes_load_shapes(
# Shape of peak day (hourly values of peak day)
shape_peak_dh = lp.abs_to_rel(peak_h_values)

# Factor to calculate daily peak demand from yearly demand
shape_peak_yd_factor = tot_peak_demand_d / tot_enduse_y

# ---Calculate non-peak shapes
shape_non_peak_yd = np.zeros((365), dtype=float)
shape_non_peak_y_dh = np.zeros((365, 24), dtype=float)
Expand All @@ -132,7 +126,7 @@ def get_hes_load_shapes(
shape_non_peak_yd[day] = (1.0 / tot_enduse_y) * np.sum(day_values)
shape_non_peak_y_dh[day] = (1.0 / np.sum(day_values)) * day_values

return shape_peak_dh, shape_non_peak_y_dh, shape_peak_yd_factor, shape_non_peak_yd
return shape_peak_dh, shape_non_peak_y_dh, shape_non_peak_yd

def assign_hes_data_to_year(nr_of_appliances, hes_data, base_yr):
"""Fill every base year day with correct data
Expand Down Expand Up @@ -277,7 +271,7 @@ def run(paths, local_paths, base_yr):
if enduse == 'rs_water_heating':

# Generate HES load shapes
shape_peak_dh, shape_non_peak_y_dh, shape_peak_yd_factor, shape_non_peak_yd = get_hes_load_shapes(
shape_peak_dh, shape_non_peak_y_dh, shape_non_peak_yd = get_hes_load_shapes(
hes_appliances_matching,
year_raw_hes_values,
hes_y_peak,
Expand All @@ -291,13 +285,12 @@ def run(paths, local_paths, base_yr):
local_paths['rs_load_profile_txt'],
shape_peak_dh,
shape_non_peak_y_dh,
shape_peak_yd_factor,
shape_non_peak_yd)
else:
pass
else:
# Generate HES load shapes
shape_peak_dh, shape_non_peak_y_dh, shape_peak_yd_factor, shape_non_peak_yd = get_hes_load_shapes(
shape_peak_dh, shape_non_peak_y_dh, shape_non_peak_yd = get_hes_load_shapes(
hes_appliances_matching,
year_raw_hes_values,
hes_y_peak,
Expand All @@ -309,7 +302,6 @@ def run(paths, local_paths, base_yr):
local_paths['rs_load_profile_txt'],
shape_peak_dh,
shape_non_peak_y_dh,
shape_peak_yd_factor,
shape_non_peak_yd)

logging.info("... finished script %s", os.path.basename(__file__))
Expand Down
16 changes: 2 additions & 14 deletions energy_demand/scripts/s_ss_raw_shapes.py
Expand Up @@ -34,8 +34,6 @@ def read_raw_carbon_trust_data(folder_path):
Load shape for every day (tot sum 365) ((365, 24))
load_peak_shape_dh : array
Peak loadshape for peak day ((24))
shape_peak_yd_factor : float
Peak load factor
shape_non_peak_yd : array
Yh load profile ((365))
Expand Down Expand Up @@ -197,15 +195,6 @@ def initialise_out_dict_av():
# Calculate yearly sum
yearly_demand = np.sum(year_data)

# Calculate shape_peak_yd_factor
max_demand_d = 0
for yearday, carbon_trust_d in enumerate(year_data):
daily_sum = np.sum(carbon_trust_d)
if daily_sum > max_demand_d:
max_demand_d = daily_sum

shape_peak_yd_factor = max_demand_d / yearly_demand

# Create load_shape_dh
load_shape_y_dh = np.zeros((365, 24), dtype=float)
for day, dh_values in enumerate(year_data):
Expand All @@ -222,7 +211,7 @@ def initialise_out_dict_av():

np.testing.assert_almost_equal(np.sum(shape_non_peak_yd), 1, decimal=2, err_msg="")

return load_shape_y_dh, load_peak_shape_dh, shape_peak_yd_factor, shape_non_peak_yd
return load_shape_y_dh, load_peak_shape_dh, shape_non_peak_yd

def is_leap_year(year):
"""Determine whether a year is a leap year"""
Expand Down Expand Up @@ -321,7 +310,7 @@ def run(paths, local_paths, lookups):
folder_path = sector_folder_path_elec

# Read in shape from carbon trust metering trial dataset
shape_non_peak_y_dh, load_peak_shape_dh, shape_peak_yd_factor, shape_non_peak_yd = read_raw_carbon_trust_data(
shape_non_peak_y_dh, load_peak_shape_dh, shape_non_peak_yd = read_raw_carbon_trust_data(
folder_path)

# Write shapes to txt
Expand All @@ -332,7 +321,6 @@ def run(paths, local_paths, lookups):
local_paths['ss_load_profile_txt'],
load_peak_shape_dh,
shape_non_peak_y_dh,
shape_peak_yd_factor,
shape_non_peak_yd)

# ---------------------
Expand Down
2 changes: 0 additions & 2 deletions energy_demand/scripts/s_write_dummy_data.py
Expand Up @@ -105,15 +105,13 @@ def dummy_sectoral_load_profiles(local_paths, path_main):
# Flat profiles
load_peak_shape_dh = np.full((24), 1)
shape_non_peak_y_dh = np.full((365, 24), 1/24)
shape_peak_yd_factor = 1.0
shape_non_peak_yd = np.full((365), 1/365)

write_data.create_txt_shapes(
joint_string_name,
local_paths['ss_load_profile_txt'],
load_peak_shape_dh,
shape_non_peak_y_dh,
shape_peak_yd_factor,
shape_non_peak_yd)

def post_install_setup_minimum(args):
Expand Down
13 changes: 0 additions & 13 deletions tests/geography/test_weather_region.py
Expand Up @@ -39,19 +39,6 @@
assert weather_region_obj.weather_region_name == 'Bern'
test_WeatherRegion()'''

def test_get_shape_peak_yd_factor():

demand_yd = np.zeros((365))
for day in range(365):
demand_yd[day] = np.random.randint(0, 30)

result = weather_region.get_shape_peak_yd_factor(
demand_yd)

expected = (1 / np.sum(demand_yd)) * np.max(demand_yd)

assert round(result, 4) == round(expected, 4)

def test_change_temp_climate():

temp_data = np.zeros((365, 24)) + 10
Expand Down

0 comments on commit 5f3da4d

Please sign in to comment.