Init MJO script
[mjo_indices/.git] / mjo_indices.py
1 import datetime as dt
2 import numpy as np
3 import urllib2
4
5 URL = 'http://www.bom.gov.au/climate/mjo/graphics/rmm.74toRealtime.txt'
6
7 def _retrieve():
8     resp = urllib2.urlopen(URL)
9     data = resp.read()
10
11     return data
12
13
14 def _parse(data):
15     d1 = data.split('\n')
16     d2 = []
17     for row in d1:
18         d2.append(row.split())
19     return d2[2:-1]
20
21
22 def _extract(data):
23     # Columns are year, month, day, rmm1, rmm2, phase, amplitude, note. Missing values are 999 in phase.
24     out = np.zeros([len(data), 4])
25     for ir,row in enumerate(data):
26         t = dt.datetime(int(row[0]), int(row[1]), int(row[2]))
27         out[ir,:] = int(row[0]), t.timetuple().tm_yday, int(row[5]), float(row[6])
28     return out
29
30
31 def load_indices():
32     a = _retrieve()
33     b = _parse(a)
34     c = _extract(b)
35
36     return c