Skip to content

Commit 06d35af

Browse files
authored
Merge pull request #381 from EnergySystemsModellingLab/timeslice_names
Remove any hardcoded reference to "month", "day" and "hour"
2 parents e74700c + e830cd3 commit 06d35af

13 files changed

Lines changed: 2164 additions & 2181 deletions

File tree

docs/tutorial-code/0-new-decision-metric/Results/MCAMetric_Consumption.csv

Lines changed: 277 additions & 277 deletions
Large diffs are not rendered by default.

docs/tutorial-code/0-new-decision-metric/Results/MCAMetric_Supply.csv

Lines changed: 379 additions & 379 deletions
Large diffs are not rendered by default.

docs/tutorial-code/0-new-decision-metric/settings.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ commodities_out = '{path}/technodata/power/CommOut.csv'
7676
agents = '{path}/technodata/Agents.csv'
7777
existing_capacity = '{path}/technodata/power/ExistingCapacity.csv'
7878
lpsolver = "scipy"
79+
demand_share = "standard_demand"
7980

8081
[sectors.gas]
8182
type = 'default'
@@ -89,6 +90,7 @@ commodities_out = '{path}/technodata/gas/CommOut.csv'
8990
agents = '{path}/technodata/Agents.csv'
9091
existing_capacity = '{path}/technodata/gas/ExistingCapacity.csv'
9192
lpsolver = "scipy"
93+
demand_share = "standard_demand"
9294

9395
[sectors.residential_presets]
9496
type = 'presets'

docs/tutorial-code/7-min-max-timeslice-constraints/1-min-constraint/Results/MCAMetric_Consumption.csv

Lines changed: 205 additions & 205 deletions
Large diffs are not rendered by default.

docs/tutorial-code/7-min-max-timeslice-constraints/1-min-constraint/Results/MCAMetric_Supply.csv

Lines changed: 235 additions & 235 deletions
Large diffs are not rendered by default.

docs/tutorial-code/7-min-max-timeslice-constraints/2-max-constraint/Results/MCAMetric_Consumption.csv

Lines changed: 175 additions & 175 deletions
Large diffs are not rendered by default.

docs/tutorial-code/7-min-max-timeslice-constraints/2-max-constraint/Results/MCAMetric_Supply.csv

Lines changed: 205 additions & 205 deletions
Large diffs are not rendered by default.

src/muse/investments.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,11 +310,7 @@ def scipy_match_demand(
310310

311311
from muse.constraints import ScipyAdapter
312312

313-
df_technologies = (
314-
technologies.to_dataframe()
315-
.drop(["month", "day", "hour"], axis=1, errors="ignore")
316-
.reset_index()
317-
)
313+
df_technologies = technologies.to_dataframe()
318314

319315
if "timeslice" in costs.dims and timeslice_op is not None:
320316
costs = timeslice_op(costs)

src/muse/outputs/mca.py

Lines changed: 19 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def quantity(
3535
from muse.registration import registrator
3636
from muse.sectors import AbstractSector
3737
from muse.timeslices import QuantityType, convert_timeslice, drop_timeslice
38+
from muse.utilities import multiindex_to_coords
3839

3940
OUTPUT_QUANTITY_SIGNATURE = Callable[
4041
[xr.Dataset, list[AbstractSector], KwArg(Any)], Union[xr.DataArray, pd.DataFrame]
@@ -396,26 +397,16 @@ def sector_supply(sector: AbstractSector, market: xr.Dataset, **kwargs) -> pd.Da
396397
data_agent["category"] = a.category
397398
data_agent["sector"] = getattr(sector, "name", "unnamed")
398399

399-
a = data_agent.to_dataframe("supply")
400+
a = multiindex_to_coords(data_agent, "timeslice").to_dataframe("supply")
400401
a["comm_usage"] = a["comm_usage"].apply(lambda x: x.name)
401-
if len(a) > 0 and len(a.technology.values) > 0:
402-
b = a.drop(
403-
["month", "day", "hour"], axis=1, errors="ignore"
404-
).reset_index()
405-
b = b[b["supply"] != 0]
406-
data_sector.append(b)
407-
if len(data_sector) > 0:
408-
output = pd.concat([u for u in data_sector], sort=True)
402+
if not a.empty:
403+
data_sector.append(a[a["supply"] != 0])
409404

405+
if len(data_sector) > 0:
406+
output = pd.concat(data_sector, sort=True).reset_index()
410407
else:
411408
output = pd.DataFrame()
412-
413-
# Combine timeslice columns into a single column, if present
414-
if "hour" in output.columns:
415-
output["timeslice"] = list(zip(output["month"], output["day"], output["hour"]))
416-
output = output.drop(["month", "day", "hour"], axis=1)
417-
418-
return output.reset_index()
409+
return output
419410

420411

421412
@register_output_quantity(name=["yearly_supply"])
@@ -572,12 +563,9 @@ def capacity(agents):
572563
data_sector.append(b)
573564

574565
if len(data_sector) > 0:
575-
output = pd.concat([u for u in data_sector], sort=True)
576-
566+
output = pd.concat(data_sector, sort=True).reset_index()
577567
else:
578568
output = pd.DataFrame()
579-
output = output.reset_index()
580-
581569
return output
582570

583571

@@ -643,26 +631,19 @@ def sector_consumption(
643631
data_agent["agent"] = a.name
644632
data_agent["category"] = a.category
645633
data_agent["sector"] = getattr(sector, "name", "unnamed")
646-
a = data_agent.to_dataframe("consumption")
634+
635+
a = multiindex_to_coords(data_agent, "timeslice").to_dataframe(
636+
"consumption"
637+
)
647638
a["comm_usage"] = a["comm_usage"].apply(lambda x: x.name)
648-
if len(a) > 0 and len(a.technology.values) > 0:
649-
b = a.drop(
650-
["month", "day", "hour"], axis=1, errors="ignore"
651-
).reset_index()
652-
b = b[b["consumption"] != 0]
653-
data_sector.append(b)
654-
if len(data_sector) > 0:
655-
output = pd.concat([u for u in data_sector], sort=True)
639+
if not a.empty:
640+
data_sector.append(a[a["consumption"] != 0])
656641

642+
if len(data_sector) > 0:
643+
output = pd.concat(data_sector, sort=True).reset_index()
657644
else:
658645
output = pd.DataFrame()
659-
660-
# Combine timeslice columns into a single column, if present
661-
if "hour" in output.columns:
662-
output["timeslice"] = list(zip(output["month"], output["day"], output["hour"]))
663-
output = output.drop(["month", "day", "hour"], axis=1)
664-
665-
return output.reset_index()
646+
return output
666647

667648

668649
@register_output_quantity(name=["yearly_consumption"])
@@ -729,12 +710,9 @@ def sectory_consumption(
729710
b = b[b["consumption"] != 0]
730711
data_sector.append(b)
731712
if len(data_sector) > 0:
732-
output = pd.concat([u for u in data_sector], sort=True)
733-
713+
output = pd.concat(data_sector, sort=True).reset_index()
734714
else:
735715
output = pd.DataFrame()
736-
output = output.reset_index()
737-
738716
return output
739717

740718

@@ -848,12 +826,9 @@ def sector_capital_costs(
848826
b = b[b["capital_costs"] != 0]
849827
data_sector.append(b)
850828
if len(data_sector) > 0:
851-
output = pd.concat([u for u in data_sector], sort=True)
852-
output = output.reset_index()
853-
829+
output = pd.concat(data_sector, sort=True).reset_index()
854830
else:
855831
output = pd.DataFrame()
856-
857832
return output
858833

859834

0 commit comments

Comments
 (0)