second version
This commit is contained in:
43
db/migration/V019__forecast_accuracy.sql
Normal file
43
db/migration/V019__forecast_accuracy.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- ============================================================
|
||||
-- Tabulka pro tracking přesnosti forecastu
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE ems.forecast_accuracy (
|
||||
id SERIAL PRIMARY KEY,
|
||||
site_id INT NOT NULL REFERENCES ems.site(id),
|
||||
pv_array_id INT NOT NULL REFERENCES ems.asset_pv_array(id),
|
||||
interval_start TIMESTAMPTZ NOT NULL,
|
||||
run_id INT NOT NULL REFERENCES ems.forecast_pv_run(id),
|
||||
-- Forecast hodnoty
|
||||
forecast_power_w INT NOT NULL,
|
||||
forecast_created_at TIMESTAMPTZ NOT NULL,
|
||||
lead_time_hours NUMERIC(6,2), -- kolik hodin předem byl forecast vytvořen
|
||||
-- Skutečnost (doplněna zpětně z telemetrie)
|
||||
actual_power_w INT,
|
||||
actual_filled_at TIMESTAMPTZ,
|
||||
-- Odchylka
|
||||
error_w INT, -- forecast - actual
|
||||
error_pct NUMERIC(8,4), -- (forecast - actual) / actual * 100
|
||||
UNIQUE (run_id, interval_start)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE ems.forecast_accuracy IS
|
||||
'Tracking přesnosti FVE forecastu. Každý řádek = jeden 15min slot
|
||||
z jednoho forecast runu. actual_power_w se doplňuje zpětně z telemetrie
|
||||
po uplynutí intervalu přes fn_fill_forecast_accuracy().
|
||||
Uchovávat navždy – slouží pro analýzu přesnosti a budoucí kalibraci solveru.';
|
||||
|
||||
COMMENT ON COLUMN ems.forecast_accuracy.lead_time_hours IS
|
||||
'Kolik hodin předem byl tento forecast vytvořen.
|
||||
Příklad: forecast vytvořen v pondělí 14:00, interval ve středu 12:00 = 46h.
|
||||
Slouží pro analýzu: je 6h forecast přesnější než 48h forecast?';
|
||||
|
||||
COMMENT ON COLUMN ems.forecast_accuracy.error_pct IS
|
||||
'Relativní chyba v %. Kladná = forecast nadhodnotil, záporná = podhodnotil.
|
||||
NULL pokud actual_power_w = 0 (zamezení dělení nulou).';
|
||||
|
||||
CREATE INDEX idx_forecast_accuracy_site_time
|
||||
ON ems.forecast_accuracy (site_id, interval_start DESC);
|
||||
|
||||
CREATE INDEX idx_forecast_accuracy_array_lead
|
||||
ON ems.forecast_accuracy (pv_array_id, lead_time_hours, interval_start DESC);
|
||||
Reference in New Issue
Block a user