fix forecast korekce
This commit is contained in:
@@ -495,15 +495,15 @@ async def get_site_forecast_pv_slots_range(
|
||||
to_ts: datetime = Query(
|
||||
...,
|
||||
alias="to",
|
||||
description="Konec polouzavřeného intervalu (max. cca 120 h za from)",
|
||||
description="Konec polouzavřeného intervalu (max. 60 dní za from)",
|
||||
),
|
||||
) -> dict[str, list[dict[str, Any]]]:
|
||||
if to_ts <= from_ts:
|
||||
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
|
||||
if to_ts - from_ts > timedelta(hours=120):
|
||||
if to_ts - from_ts > timedelta(days=60):
|
||||
raise HTTPException(
|
||||
status_code=422,
|
||||
detail="Span between 'from' and 'to' must be at most 120 hours",
|
||||
detail="Span between 'from' and 'to' must be at most 60 days",
|
||||
)
|
||||
async with db.acquire() as conn:
|
||||
site_ok = await conn.fetchval(
|
||||
@@ -536,7 +536,7 @@ async def get_site_forecast_pv_slots_range_corrected(
|
||||
to_ts: datetime = Query(
|
||||
...,
|
||||
alias="to",
|
||||
description="Konec polouzavřeného intervalu (max. cca 120 h za from)",
|
||||
description="Konec polouzavřeného intervalu (max. 60 dní za from)",
|
||||
),
|
||||
delta_from_ts: datetime | None = Query(
|
||||
None,
|
||||
@@ -563,10 +563,10 @@ async def get_site_forecast_pv_slots_range_corrected(
|
||||
) -> dict[str, list[dict[str, Any]]]:
|
||||
if to_ts <= from_ts:
|
||||
raise HTTPException(status_code=422, detail="'to' must be after 'from'")
|
||||
if to_ts - from_ts > timedelta(hours=120):
|
||||
if to_ts - from_ts > timedelta(days=60):
|
||||
raise HTTPException(
|
||||
status_code=422,
|
||||
detail="Span between 'from' and 'to' must be at most 120 hours",
|
||||
detail="Span between 'from' and 'to' must be at most 60 days",
|
||||
)
|
||||
now = datetime.now(tz=timezone.utc)
|
||||
delta_to = delta_to_ts or now
|
||||
|
||||
@@ -14,7 +14,7 @@ as $fn$
|
||||
p_from as ts_from,
|
||||
case
|
||||
when p_to <= p_from then p_from + interval '15 minutes'
|
||||
when p_to > p_from + interval '120 hours' then p_from + interval '120 hours'
|
||||
when p_to > p_from + interval '60 days' then p_from + interval '60 days'
|
||||
else p_to
|
||||
end as ts_to
|
||||
),
|
||||
@@ -64,4 +64,4 @@ as $fn$
|
||||
$fn$;
|
||||
|
||||
comment on function ems.fn_forecast_pv_slots_range(int, timestamptz, timestamptz) is
|
||||
'JSON pole {interval_start, pv_forecast_total_w} po 15 min pro [p_from, p_to); doplnění grafu plánu za hranicí planning_interval.';
|
||||
'JSON pole {interval_start, pv_forecast_total_w} po 15 min pro [p_from, p_to); doplnění grafu plánu za hranicí planning_interval. Horizont je omezený na max. 60 dní.';
|
||||
|
||||
@@ -26,7 +26,7 @@ as $fn$
|
||||
p_from as ts_from,
|
||||
case
|
||||
when p_to <= p_from then p_from + interval '15 minutes'
|
||||
when p_to > p_from + interval '120 hours' then p_from + interval '120 hours'
|
||||
when p_to > p_from + interval '60 days' then p_from + interval '60 days'
|
||||
else p_to
|
||||
end as ts_to
|
||||
),
|
||||
@@ -120,4 +120,4 @@ as $fn$
|
||||
$fn$;
|
||||
|
||||
comment on function ems.fn_forecast_pv_slots_range_corrected(int, timestamptz, timestamptz, timestamptz, timestamptz, numeric, int) is
|
||||
'JSON pole {interval_start, pv_forecast_total_w, pv_forecast_corrected_w, slot_of_day} po 15 min pro [p_from, p_to). Korekce je aditivní delta profil z fn_pv_forecast_delta_profile.';
|
||||
'JSON pole {interval_start, pv_forecast_total_w, pv_forecast_corrected_w, slot_of_day} po 15 min pro [p_from, p_to). Korekce je aditivní delta profil z fn_pv_forecast_delta_profile. Horizont je omezený na max. 60 dní.';
|
||||
|
||||
Reference in New Issue
Block a user