gt22 icon

Untitled

gt22 | PRO | 03/14/19 06:43:45 AM UTC | 0 ⭐ | 828 👁️ | Never ⏰ | []
Python |

1.04 KB

|

None

|

0 👍

/

0 👎

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