import ips
import numpy as np
def get_values(f):
return f.lower0, f.lower50, f.median, f.upper50, f.upper0
def get_lengths(f):
(a, b, c, d, e) = get_values(f)
return b - a, c - b, d - c, e - d
def get_exp(f):
(a, b, c, d, e) = get_values(f)
return (b + c + d) / 4 + (a + e) / 8
def get_interval(f, p):
(a, b, c, d, e) = get_values(f)
if p < 0.25:
smallest = np.argmin(get_lengths(f))
l, r = 0, 0
if smallest == 0:
l, r = a, b
elif smallest == 1:
l, r = b, c
elif smallest == 2:
l, r = c, d
elif smallest == 3:
l, r = d, e
res_len = (r - l) * 25 * p
mid = (l + r) / 2
start, end = mid - (res_len / 2), mid + (res_len / 2)
return start, end
# получаем структуру для работы
ips.debug_psm_file('state-random.json')
psm = ips.init()
q = psm.wind[0].forecast
print(q.lower0)
print("Exp: ", get_exp(q))
print("Int 10%", get_interval(q, .10))
Comments