gt22

Untitled

Mar 14th, 2019
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.04 KB | None | 0 0
  1. import ips
  2. import numpy as np
  3.  
  4.  
  5. def get_values(f):
  6.     return f.lower0, f.lower50, f.median, f.upper50, f.upper0
  7.  
  8.  
  9. def get_lengths(f):
  10.     (a, b, c, d, e) = get_values(f)
  11.     return b - a, c - b, d - c, e - d
  12.  
  13.  
  14. def get_exp(f):
  15.     (a, b, c, d, e) = get_values(f)
  16.     return (b + c + d) / 4 + (a + e) / 8
  17.  
  18.  
  19. def get_interval(f, p):
  20.     (a, b, c, d, e) = get_values(f)
  21.     if p < 0.25:
  22.         smallest = np.argmin(get_lengths(f))
  23.         l, r = 0, 0
  24.         if smallest == 0:
  25.             l, r = a, b
  26.         elif smallest == 1:
  27.             l, r = b, c
  28.         elif smallest == 2:
  29.             l, r = c, d
  30.         elif smallest == 3:
  31.             l, r = d, e
  32.         res_len = (r - l) * 25 * p
  33.         mid = (l + r) / 2
  34.         start, end = mid - (res_len / 2), mid + (res_len / 2)
  35.         return start, end
  36.  
  37.  
  38. # получаем структуру для работы
  39. ips.debug_psm_file('state-random.json')
  40. psm = ips.init()
  41. q = psm.wind[0].forecast
  42. print(q.lower0)
  43. print("Exp: ", get_exp(q))
  44. print("Int 10%", get_interval(q, .10))
Advertisement
Add Comment
Please, Sign In to add comment