Skip to content
Snippets Groups Projects
Commit 1af1697e authored by Jonas Brucksch's avatar Jonas Brucksch
Browse files

Merge branch 'main' of git-ce.rwth-aachen.de:ineed-dc/ineed-dc-framework

parents 71024fc6 13e82826
No related branches found
No related tags found
No related merge requests found
Showing
with 97 additions and 79 deletions
Subproject commit 4e49b79efb7880004cf752c3c4b9d5035280b8b2
Subproject commit bcb9d840108bdc819b5f9f78c82acedfaf32bcc0
Subproject commit 48c245ed54aca35689bffd960030ba1f4422598d
Subproject commit 3297d3d3bc34991d70c52a7ec72bc93424226b84
"""
This script inspects the input files and modifies them such that they adhere to the new input file specification used by the framework after merge of merge request !13 Input Profile Processor.
This script assumes that the file containing the paths to the files containing the input profiles is called "data_path.csv".
"""
import os.path
changed_files = []
for dirpath, dirnames, filenames in os.walk(".\\input_files"):
for filename in filenames:
if filename == "data_path.csv":
print(f"Inspecting file {os.path.join(dirpath, filename)}")
changed_files.append(os.path.join(dirpath, filename))
os.remove(os.path.join(dirpath, filename))
for file in changed_files:
print(f"Modified file {file}!")
"""
This script inspects the input files and modifies them such that they adhere to the new input file specification used by the framework after merge of merge request !12 Refactoring Part 1.
"""
import os.path
import pandas as pd
def read_matrix(df):
matrix = []
for i in df.index:
matrix_row = []
for j in df.index:
matrix_row.append(df[df["comp_name"][j]][i])
matrix.append(matrix_row)
return matrix
def read_components(df):
components = {}
for i in df.index:
components[df["comp_name"][i]] = i
return components
def get_connection(matrix, components, comp_from, comp_to):
return matrix[components[comp_from]][components[comp_to]]
def set_connection(matrix, components, comp_from, comp_to, value):
matrix[components[comp_from]][components[comp_to]] = value
def write_matrix(df, matrix):
for i in df.index:
for j in df.index:
df.loc[i, df["comp_name"][j]] = matrix[i][j]
changed_files = []
invalid_files = []
for dirpath, dirnames, filenames in os.walk(".\\input_files"):
for filename in filenames:
matrix_names = ["elec_matrix.csv", "gas_matrix.csv", "hydro_matrix.csv", "therm_matrix.csv"]
consumption_component_names = ["ChargingInfrastructure", "StandardElectricalConsumption", "HeadConsumption", "Radiator", "HotWaterConsumption"]
if filename.find('matrix') and filename.endswith('.csv') and (filename.find('elec') is not -1 or filename.find('gas') is not -1 or filename.find('hydro') is not -1 or filename.find('therm') is not -1):
try:
print(f"Inspecting file {os.path.join(dirpath, filename)}")
df = pd.read_csv(os.path.join(dirpath, filename))
file_changed = False
matrix = read_matrix(df)
components = read_components(df)
for component in components.keys():
if df["comp_type"][components[component]] in consumption_component_names:
receives_from = []
gives_to = []
for other_component in components.keys():
if get_connection(matrix, components, other_component, component) == 1:
receives_from.append(other_component)
if get_connection(matrix, components, component, other_component) == 1:
gives_to.append(other_component)
if len(gives_to) != 0:
file_changed = True
for recieving_component in gives_to:
set_connection(matrix, components, component, recieving_component, 0)
for giving_component in receives_from:
set_connection(matrix, components, giving_component, recieving_component, 1)
if file_changed:
changed_files.append(os.path.join(dirpath, filename))
write_matrix(df, matrix)
df.to_csv(os.path.join(dirpath, "temp.csv"), index = False)
df_str = pd.read_csv(os.path.join(dirpath, "temp.csv"), dtype = str, keep_default_na = False)
for i in df.columns:
if issubclass(type(df[i][0]), float):
for j in df.index:
if len(df_str[i][j]) != 0 and df_str[i][j].endswith(".0"):
df_str[i][j] = f"{df[i][j]:.0f}"
df_str.to_csv(os.path.join(dirpath, filename), index = False)
os.remove(os.path.join(dirpath, "temp.csv"))
except KeyError:
invalid_files.append(os.path.join(dirpath, filename))
for file in changed_files:
print(f"Modified file {file}!")
for file in invalid_files:
print(f"File {file} breaks some part of the input file specification that during the refactoring!")
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
elec_price,input_files/data/prices/day-ahead/hourly_price.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
elec_price,input_files/data/prices/day-ahead/hourly_price.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
day_ahead_price,input_files/data/prices/day-ahead/hourly_price.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
day_ahead_price,input_files/data/prices/day-ahead/hourly_price.csv,h
type,path,unit
demand_electric,generate,h
demand_heat,generate,h
irradiance,input_files/data/irradiance/Lindenberg2006BSRN_Irradiance_60sec.csv,min
temperature,input_files/data/temperature/temperature.csv,h
day_ahead_price,input_files/data/prices/day-ahead/hourly_price.csv,h
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment