Skip to content

Commit

Permalink
Merge pull request #154 from nismod/p3_weather
Browse files Browse the repository at this point in the history
P3 weather
  • Loading branch information
eggimasv committed Jan 31, 2019
2 parents ee55b84 + 4ffff8b commit fee6c1b
Show file tree
Hide file tree
Showing 5 changed files with 149 additions and 147 deletions.
2 changes: 1 addition & 1 deletion energy_demand/read_write/read_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ def read_results_yh(path_to_folder, name_of_folder):
try:
path_file_to_read = os.path.join(path_to_folder, file_path)
file_path_split = file_path.split("__")
year = int(file_path_split[1])
year = int(file_path_split[1][:-4])

results[year] = np.load(path_file_to_read)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,103 +105,103 @@ def main(
national_hydrogen = pd.DataFrame()

for path_result_folder in paths_folders_result:
try:
data = {}

# Simulation information is read in from .ini file for results
data['enduses'], data['assumptions'], data['regions'] = data_loader.load_ini_param(os.path.join(path_result_folder))
pop_data = read_data.read_scenaric_population_data(os.path.join(path_result_folder, 'model_run_pop'))
path_result_folder = os.path.join(path_result_folder, 'simulation_results')
path_result_folder_model_runs = os.path.join(path_result_folder, 'model_run_results_txt')
data['lookups'] = lookup_tables.basic_lookups()

# Other information is read in
data['assumptions']['seasons'] = date_prop.get_season(year_to_model=2015)
data['assumptions']['model_yeardays_daytype'], data['assumptions']['yeardays_month'], data['assumptions']['yeardays_month_days'] = date_prop.get_yeardays_daytype(year_to_model=2015)

# --------------------------------------------
# Reading in results from different model runs
# --------------------------------------------
results_container = read_weather_results.read_in_weather_results(
path_result_folder_model_runs,
data['assumptions']['seasons'],
data['assumptions']['model_yeardays_daytype'],
pop_data,
fueltype_str='electricity')

# --Total demand (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_tot_y'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])
total_regional_demand_electricity = total_regional_demand_electricity.append(realisation_data)

# National per fueltype electricity
fueltype_elec_int = tech_related.get_fueltype_int('electricity')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_electricity = national_electricity.append(realisation_data)

# National per fueltype gas
fueltype_elec_int = tech_related.get_fueltype_int('gas')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_gas = national_gas.append(realisation_data)

# National per fueltype hydrogen
fueltype_elec_int = tech_related.get_fueltype_int('hydrogen')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_hydrogen = national_hydrogen.append(realisation_data)

# --Peak hour demand per region (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_peakday_peak_hour'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])

peak_hour_demand = peak_hour_demand.append(realisation_data)

# --Peak hour demand / pop per region (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_peakday_peak_hour_per_pop'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])

peak_hour_demand_per_person = peak_hour_demand_per_person.append(realisation_data)

# --National peak
simulation_yrs_result = [results_container['national_peak'][year][fueltype_int] for year in results_container['national_peak'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_peak = national_peak.append(realisation_data)

# --Regional percentage of national peak demand
realisation_data = pd.DataFrame(
[results_container['regional_share_national_peak'][simulation_yr_to_plot]],
columns=data['regions'])

regional_share_national_peak = regional_share_national_peak.append(realisation_data)

# --Regional percentage of national peak demand per person
realisation_data = pd.DataFrame(
[results_container['regional_share_national_peak_pp'][simulation_yr_to_plot]],
columns=data['regions'])

regional_share_national_peak_pp = regional_share_national_peak_pp.append(realisation_data)

except:
#raise Exception("The run '{}' is corrupted".format(path_result_folder))
print("The run '{}' is corrupted".format(path_result_folder))
pass
try:
data = {}

# Simulation information is read in from .ini file for results
data['enduses'], data['assumptions'], data['regions'] = data_loader.load_ini_param(os.path.join(path_result_folder))
pop_data = read_data.read_scenaric_population_data(os.path.join(path_result_folder, 'model_run_pop'))
path_result_folder = os.path.join(path_result_folder, 'simulation_results')
path_result_folder_model_runs = os.path.join(path_result_folder, 'model_run_results_txt')
data['lookups'] = lookup_tables.basic_lookups()

# Other information is read in
data['assumptions']['seasons'] = date_prop.get_season(year_to_model=2015)
data['assumptions']['model_yeardays_daytype'], data['assumptions']['yeardays_month'], data['assumptions']['yeardays_month_days'] = date_prop.get_yeardays_daytype(year_to_model=2015)

# --------------------------------------------
# Reading in results from different model runs
# --------------------------------------------
results_container = read_weather_results.read_in_weather_results(
path_result_folder_model_runs,
data['assumptions']['seasons'],
data['assumptions']['model_yeardays_daytype'],
pop_data,
fueltype_str='electricity')

# --Total demand (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_tot_y'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])
total_regional_demand_electricity = total_regional_demand_electricity.append(realisation_data)

# National per fueltype electricity
fueltype_elec_int = tech_related.get_fueltype_int('electricity')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_electricity = national_electricity.append(realisation_data)

# National per fueltype gas
fueltype_elec_int = tech_related.get_fueltype_int('gas')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_gas = national_gas.append(realisation_data)

# National per fueltype hydrogen
fueltype_elec_int = tech_related.get_fueltype_int('hydrogen')
simulation_yrs_result = [results_container['national_all_fueltypes'][year][fueltype_elec_int] for year in results_container['national_all_fueltypes'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_hydrogen = national_hydrogen.append(realisation_data)

# --Peak hour demand per region (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_peakday_peak_hour'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])

peak_hour_demand = peak_hour_demand.append(realisation_data)

# --Peak hour demand / pop per region (dataframe with row: realisation, column=region)
realisation_data = pd.DataFrame(
[results_container['ed_reg_peakday_peak_hour_per_pop'][simulation_yr_to_plot][fueltype_int]],
columns=data['regions'])

peak_hour_demand_per_person = peak_hour_demand_per_person.append(realisation_data)

# --National peak
simulation_yrs_result = [results_container['national_peak'][year][fueltype_int] for year in results_container['national_peak'].keys()]

realisation_data = pd.DataFrame(
[simulation_yrs_result],
columns=data['assumptions']['sim_yrs'])
national_peak = national_peak.append(realisation_data)

# --Regional percentage of national peak demand
realisation_data = pd.DataFrame(
[results_container['regional_share_national_peak'][simulation_yr_to_plot]],
columns=data['regions'])

regional_share_national_peak = regional_share_national_peak.append(realisation_data)
# --Regional percentage of national peak demand per person
realisation_data = pd.DataFrame(
[results_container['regional_share_national_peak_pp'][simulation_yr_to_plot]],
columns=data['regions'])

regional_share_national_peak_pp = regional_share_national_peak_pp.append(realisation_data)

except:
#raise Exception("The run '{}' is corrupted".format(path_result_folder))
print("The run '{}' is corrupted".format(path_result_folder))
pass

# Add to scenario container
result_entry = {
Expand Down Expand Up @@ -398,7 +398,8 @@ def main(

# Code to run charts generation for weather paper
main(
scenarios_path="C:/_WEATHER_p3",
path_shapefile_input="C:/Users/cenv0553/ED/data/energy_demand/region_definitions/lad_2016_uk_simplified.shp",
#scenarios_path="C:/_WEATHER_p3",
scenarios_path="C:/_WEATHER_p3_NEWRUN",
path_shapefile_input="C:/Users/cenv0553/ED/data/region_definitions/lad_2016_uk_simplified.shp",
base_yr=2015,
simulation_yrs_to_plot=[2015, 2020, 2050])
simulation_yrs_to_plot=[2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050])
5 changes: 3 additions & 2 deletions energy_demand/result_processing/p3_weather_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,15 @@
from energy_demand.basic import basic_functions

# Folder paths
path_out = "C:/__TEST"
path_out = "C:/__TEST" # Folder to store results
path_results = "C:/Users/cenv0553/ED/results"
path_results = "C:\_WEATHER_p3_NEWRUN" # Folder of calculated model runs

# Scenario definitions
scenarios = ['l_min', 'l_max', 'h_min', 'h_max']
fueltypes = ['electricity', 'gas', 'hydrogen']
folder_types = ['mean', 'quantile_05', 'quantile_95']
simulation_yrs = [2015, 2041]
simulation_yrs = range(2015, 2051, 5)

# -----------------------
# Create folder structure
Expand Down

0 comments on commit fee6c1b

Please sign in to comment.