Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Mayer
CircularGreenSimCity
Commits
a3cfa895
Commit
a3cfa895
authored
Apr 08, 2024
by
Eric Duminil
Browse files
With plot
parent
63ab5d0a
Changes
1
Hide whitespace changes
Inline
Side-by-side
python_scripts/run_simstadt_from_python/variable_window_ratio.py
View file @
a3cfa895
...
...
@@ -2,6 +2,7 @@ from pathlib import Path
import
shutil
from
xml.etree
import
ElementTree
as
et
import
pandas
as
pd
import
matplotlib.pyplot
as
plt
from
run_simstadt_workflow
import
find_simstadt
,
SCRIPT_DIR
,
run_workflow
...
...
@@ -13,7 +14,7 @@ logging.getLogger().setLevel(logging.WARN)
SIMSTADT2_GLOB
=
'Desktop/SimStadt2_0.*/'
REPO_PATH
=
Path
.
home
()
/
'git'
/
'simstadt2'
/
'TestRepository'
PROJECT_NAME
=
'Gruenbuehl'
CITYGML
S
=
[
'Gruenbuehl_LOD2_ALKIS_1010.gml'
]
CITYGML
=
'Gruenbuehl_LOD2_ALKIS_1010.gml'
SURFACES
=
[
'outWalls'
,
'pitchedRoof'
]
WINDOW_RATIOS
=
[
0
,
0.5
,
1
]
# Heat demand, with custom BuildingPhysics
...
...
@@ -79,25 +80,36 @@ def parse_results(window_ratio, heat_demand_csv):
decimal
=
','
)
heat_demand_MWh
=
df
[
'Yearly Heating demand'
].
sum
()
/
1000
cool_demand_MWh
=
df
[
'Yearly Cooling demand'
].
sum
()
/
1000
heat
ing
_demand_MWh
=
df
[
'Yearly Heating demand'
].
sum
()
/
1000
cool
ing
_demand_MWh
=
df
[
'Yearly Cooling demand'
].
sum
()
/
1000
print
(
f
"Window Ratio :
{
window_ratio
*
100
}
%"
)
print
(
f
"Total heating demand :
{
heat_demand_MWh
:
.
0
f
}
MWh / a"
)
print
(
f
"Total cooling demand :
{
cool_demand_MWh
:
.
0
f
}
MWh / a"
)
print
(
f
"Total heating demand :
{
heating_demand_MWh
:
.
0
f
}
MWh / a"
)
print
(
f
"Total cooling demand :
{
cooling_demand_MWh
:
.
0
f
}
MWh / a"
)
return
{
'WindowRatio'
:
window_ratio
,
'HeatingDemand'
:
heating_demand_MWh
,
'CoolingDemand'
:
cooling_demand_MWh
}
workflow_path
,
physics_processor_step
=
copy_workflow_from_template
(
TEMPLATE_NAME
,
PROJECT_PATH
)
custom_library_path
=
set_custom_library
(
physics_processor_step
)
lib_tree
=
parse_library
(
custom_library_path
)
all_results
=
[]
for
window_ratio
in
WINDOW_RATIOS
:
# TODO: Status quo too
set_custom_window_ratio
(
lib_tree
,
window_ratio
,
custom_library_path
)
output_files
=
run_workflow
(
find_simstadt
(
SIMSTADT2_GLOB
),
workflow_path
,
CITYGML
S
)
output_files
=
run_workflow
(
find_simstadt
(
SIMSTADT2_GLOB
),
workflow_path
,
[
CITYGML
]
)
heat_demand_csv
=
next
(
file
for
file
in
output_files
if
'HEATING_AND_COOLING.csv'
in
file
.
name
)
################### Parse heat demand ########################
parse_results
(
window_ratio
,
heat_demand_csv
)
all_results
.
append
(
parse_results
(
window_ratio
,
heat_demand_csv
))
df
=
pd
.
DataFrame
(
all_results
).
set_index
(
'WindowRatio'
)
print
(
df
)
df
.
plot
()
plt
.
ylabel
(
'MWh'
)
plt
.
title
(
"Demands depending on Window Ratio"
)
plt
.
show
()
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment