5. Examples

5.1 Peak Reduction from Storage

import pandas as pd

ts = pd.read_csv("aggregate_m2_combined.csv")
ts_data = ts[ts["row_type"] == "data"]

# Quick split (example logic)
with_storage = ts_data[ts_data["n_storage"] > 0]
baseline     = ts_data[ts_data["n_storage"] == 0]

peak_baseline = baseline.groupby("circuit_folder")["P_3ph (kW)"].max()
peak_storage  = with_storage.groupby("circuit_folder")["P_3ph (kW)"].max()

peak_reduction = (peak_baseline - peak_storage).dropna()
print(peak_reduction.describe())

5.2 LHS vs Sobol Coverage (by circuit)

df = pd.read_csv("aggregate_m2_combined.csv")
c52 = df[df["circuit_folder"] == "uhs17_1247_circuit_52"]

lhs = c52[c52["design"].str.contains("lhs", case=False, na=False)]
sob = c52[c52["design"].str.contains("sobol", case=False, na=False)]

lhs_peak = lhs.groupby("scenario")["P_3ph (kW)"].max()
sob_peak = sob.groupby("scenario")["P_3ph (kW)"].max()

print(lhs_peak.describe())
print(sob_peak.describe())

5.3 Joining Time Series and Metadata

import pandas as pd

agg = pd.read_csv("aggregate_m2_combined.csv")
meta = pd.read_csv("circuit_summary_combined.csv")

# Example: select summary rows from agg (if present) and join
is_summary = agg["row_type"] == "summary"
summary = agg[is_summary].copy()

key_cols = ["circuit_folder", "season", "design", "scenario"]
joined = summary.merge(meta, on=key_cols, how="left", suffixes=("", "_meta"))
print(joined.head())