bunderbestände + colorfix

This commit is contained in:
Nicolai 2026-03-26 16:51:41 +01:00
parent a8ad3adde5
commit 16633f25b1
4 changed files with 37 additions and 9 deletions

View File

@ -65,6 +65,24 @@ npm install
npm run dev
```
Lokale Ausführung auf dem eigenen Rechner (ohne Docker):
Backend mit lokaler Gurobi-Lizenz:
```bash
cd /Users/nicolaimacbook/Projects/LEAG/COALLOG/LEAG-COALLOG
GRB_LICENSE_FILE=/Users/nicolaimacbook/gurobi.lic python3 -m uvicorn webapp.backend.main:app --reload
```
Frontend:
```bash
cd /Users/nicolaimacbook/Projects/LEAG/COALLOG/LEAG-COALLOG/webapp/frontend
npm run dev
```
Danach:
- UI: `http://localhost:5173/`
- API: `http://localhost:8000/`
Optional: eigene Input/Output-Pfade beim Preprocessing via Umgebungsvariablen:
`POC1_INPUT_XLSX`, `POC1_OUTPUT_DIR`.

View File

@ -407,7 +407,17 @@ def export_results(model: pyo.ConcreteModel, output_path: Path) -> None:
bunker_df["vortags_bunkerbestand_tonnen"] = bunker_df.groupby("kraftwerk")[
"bunkerbestand_tonnen"
].shift(1)
bunker_df["vortags_bunkerbestand_tonnen"] = bunker_df["vortags_bunkerbestand_tonnen"].fillna(0)
bunker_init_map = {
j: safe_value(model.bunker_init[j]) for j in getattr(model, "J_BUNKER", [])
}
bunker_df["vortags_bunkerbestand_tonnen"] = bunker_df.apply(
lambda row: (
bunker_init_map.get(row["kraftwerk"], 0.0)
if pd.isna(row["vortags_bunkerbestand_tonnen"])
else row["vortags_bunkerbestand_tonnen"]
),
axis=1,
)
bunker_pivot = (
bunker_df.pivot_table(
index=["datum", "woche", "tag"],

View File

@ -5,17 +5,17 @@ const API_BASE = import.meta.env.VITE_API_BASE || "";
const THEME_STORAGE_KEY = "poc1-theme";
const SOURCE_ORDER = ["Reichwalde", "Nochten", "Welzow"];
const SOURCE_COLORS = {
Reichwalde: "#e4dc41",
Nochten: "#f6bd1f",
Welzow: "#ef6c00",
Reichwalde: "#8c5e3c",
Nochten: "#b07d4f",
Welzow: "#d39b6a",
};
const TARGET_ORDER = ["J", "SP", "B3", "B4", "V"];
const TARGET_COLORS = {
J: "#439c6b",
SP: "#5aaed6",
B3: "#ef6c00",
B4: "#f6bd1f",
V: "#e4dc41",
J: "#2f6f7e",
SP: "#4f8ea3",
B3: "#5c6fb2",
B4: "#7b5ea7",
V: "#2f9a8f",
};
const TARGET_LABELS = {
J: "KW Jänschwalde",