In [1]:
%matplotlib notebook
from matplotlib import pyplot as plt
import matplotlib as mpl

In [2]:
from tqdm import tqdm

In [3]:
from datetime import datetime

In [4]:
import json

In [5]:
import pandas as pd

In [7]:
from pymongo import MongoClient
client = MongoClient("mongodb://zui:F0reverqwerty@localhost:27017/")
db = client['hkns3']

Write tops.csv


In [8]:
def write_csv(filename, l):
    with open(filename, "w") as f:
        f.write("i,item_id,time,rank\n")
        c = 0
        for entry in tqdm(l):
            time = entry['time']
            for i, v in enumerate(entry['bests']):
                rank = i + 1
                _id = v
                f.write(f"{c},{_id},{time},{rank}\n")
                c += 1

In [10]:
ts = list(db['raw'].find({"type":"top"})) + list(db['raw_time'].find({"type":"top"}))

In [11]:
write_csv("tops.csv", ts)


100%|█████████████████████████████████████████████████████████████████████████████| 6506/6506 [00:12<00:00, 513.98it/s]

In [12]:
df_ts = pd.read_csv("tops.csv", index_col=0)

In [14]:
del ts

In [16]:
df_ts_unique = df_ts['item_id'].unique()

In [68]:
def get_time_series(_id):
    dfs = df_ts[df_ts['item_id'] == _id][['time', 'rank']]
    dfs['ntime'] = ((dfs['time']).astype(int))
    rankings = []
    times = []
    for x in dfs[['ntime', 'rank']].values:
        times.append((datetime.fromtimestamp(x[0],tz=BOSTON).isoformat()))
        rankings.append(int(x[1]))
    return {
        "id": _id,
        "ranking": rankings,
        "times": times,
    }

def get_time_series_alt(_id):
    dfs = df_ts[df_ts['item_id'] == _id][['time', 'rank']]
    dfs['dtime'] = (pd.to_datetime(dfs['time']*10**9))
    return dfs[['dtime', 'rank']].to_dict(orient='list')

def insert_timeseries():
    col = db['time_series2']
    for _id in tqdm(set(df_ts_unique)):
        _id = int(_id)
        ts = get_time_series(_id)
        col.insert_one(ts)

In [69]:
insert_timeseries()


100%|██████████████████████████████████████████████████████████████████████████████| 3549/3549 [03:52<00:00, 13.63it/s]

In [61]:
get_time_series_alt(14352386)['dtime'][0].to_pydatetime().isoformat()


C:\Users\Zui\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2847: UserWarning: Discarding nonzero nanoseconds in conversion
  exec(code_obj, self.user_global_ns, self.user_ns)
Out[61]:
'2017-05-16T21:44:42.441764'

In [62]:
datetime.now(tz=BOSTON).isoformat()


Out[62]:
'2017-05-21T22:32:18.205976-04:00'

In [67]:
get_time_series(14352386)


Out[67]:
{'id': 14352386,
 'ranking': [35,
  35,
  35,
  34,
  34,
  34,
  34,
  36,
  37,
  38,
  38,
  37,
  37,
  38,
  38,
  34,
  35,
  35,
  35,
  36,
  36,
  36,
  36,
  36,
  36,
  37,
  37,
  37,
  37,
  38,
  37,
  37,
  37,
  39,
  38,
  38,
  39,
  39,
  40,
  40,
  41,
  41,
  41,
  41,
  41,
  40,
  42,
  43,
  42,
  42,
  38,
  40,
  38,
  38,
  39,
  39,
  39,
  42,
  42,
  42,
  43,
  43,
  45,
  45,
  45,
  46,
  46,
  45,
  45,
  46,
  46,
  47,
  46,
  46,
  44,
  44,
  44,
  41,
  38,
  34,
  33,
  33,
  34,
  34,
  33,
  33,
  33,
  33,
  33,
  33,
  33,
  34,
  34,
  35,
  34,
  34,
  34,
  34,
  31,
  32,
  32,
  32,
  32,
  32,
  32,
  31,
  31,
  31,
  30,
  32,
  33,
  33,
  33,
  33,
  33,
  34,
  33,
  33,
  33,
  33,
  33,
  34,
  35,
  35,
  35,
  35,
  35,
  35,
  36,
  36,
  36,
  36,
  38,
  38,
  39,
  38,
  38,
  38,
  38,
  38,
  36,
  36,
  36,
  35,
  35,
  35,
  32,
  32,
  33,
  33,
  33,
  33,
  32,
  32,
  32,
  32,
  31,
  31,
  31,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  30,
  31,
  31,
  31,
  28,
  29,
  30,
  31,
  31,
  31,
  31,
  30,
  59,
  59,
  56,
  56,
  57,
  58,
  60,
  62,
  62,
  60,
  60,
  59,
  60,
  60,
  61,
  60,
  60,
  62,
  62,
  62,
  62,
  62,
  64,
  64,
  66,
  67,
  67,
  67,
  67,
  69,
  69,
  67,
  66,
  67,
  72,
  71,
  71,
  73,
  73,
  77,
  79,
  80,
  83,
  85,
  85,
  86,
  86,
  86,
  89,
  90,
  90,
  89,
  89,
  89,
  92,
  93,
  94,
  95,
  93,
  93,
  93,
  96,
  97,
  98,
  99,
  99,
  97,
  97,
  103,
  104,
  104,
  104,
  105,
  105,
  108,
  108,
  106,
  109,
  109,
  109,
  111,
  112,
  111,
  111,
  112,
  111,
  112,
  112,
  113,
  114,
  114,
  115,
  116,
  117,
  119,
  119,
  119,
  119,
  123,
  125,
  127,
  128,
  128,
  129,
  129,
  129,
  129,
  132,
  134,
  133,
  133,
  133,
  133,
  132,
  131,
  132,
  133,
  133,
  137,
  137,
  137,
  139,
  139,
  139,
  139,
  139,
  140,
  140,
  139,
  139,
  139,
  139,
  139,
  139,
  140,
  140,
  140,
  141,
  141,
  141,
  142,
  142,
  142,
  143,
  143,
  144,
  144,
  144,
  144,
  145,
  145,
  145,
  145,
  145,
  146,
  146,
  146,
  147,
  146,
  146,
  147,
  147,
  147,
  148,
  149,
  148,
  148,
  148,
  148,
  148,
  148,
  149,
  149,
  149,
  149,
  149,
  149,
  149,
  149,
  148,
  150,
  152,
  153,
  153,
  154,
  154,
  154,
  154,
  154,
  155,
  155,
  156,
  156,
  156,
  156,
  155,
  155,
  155,
  155,
  156,
  156,
  157,
  157,
  157,
  156,
  156,
  156,
  156,
  156,
  154,
  154,
  153,
  152,
  152,
  152,
  152,
  152,
  152,
  152,
  152,
  152,
  153,
  155,
  155,
  155,
  155,
  155,
  155,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  157,
  157,
  157,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  156,
  157,
  156,
  156,
  157,
  157,
  157,
  157,
  158,
  158,
  158,
  158,
  158,
  158,
  158,
  158,
  159,
  159,
  159,
  159,
  159,
  160,
  160,
  160,
  161,
  161,
  160,
  160,
  161,
  160,
  160,
  160,
  160,
  160,
  160,
  160,
  160,
  160,
  160,
  160,
  161,
  164,
  164,
  164,
  166,
  168,
  167,
  170,
  171,
  174,
  174,
  174,
  174,
  173,
  173,
  173,
  173,
  174,
  175,
  177,
  177,
  178,
  177,
  179,
  180,
  179,
  182,
  182,
  183,
  186,
  185,
  188,
  189,
  189,
  191,
  190,
  191,
  191,
  192,
  192,
  192,
  192,
  193,
  194,
  195,
  195,
  197,
  198,
  198,
  199,
  200,
  201,
  200,
  200,
  200,
  201,
  202,
  202,
  203,
  204,
  204,
  203,
  202,
  202,
  204,
  204,
  204,
  206,
  206,
  206,
  208,
  209,
  210,
  212,
  213,
  215,
  214,
  213,
  215,
  218,
  220,
  220,
  213,
  214,
  214,
  215,
  217,
  217,
  216,
  216,
  216,
  216,
  217,
  217,
  217,
  217,
  217,
  218,
  219,
  218,
  219,
  219,
  219,
  219,
  219,
  221,
  221,
  222,
  222,
  223,
  223,
  222,
  223,
  223,
  223,
  225,
  225,
  225,
  225,
  226,
  227,
  227,
  227,
  226,
  227,
  227,
  226,
  226,
  226,
  226,
  226,
  226,
  226,
  226,
  227,
  228,
  228,
  228,
  227,
  227,
  227,
  227,
  228,
  228,
  228,
  228,
  228,
  228,
  229,
  230,
  230,
  232,
  232,
  234,
  237,
  237,
  238,
  238,
  239,
  238,
  238,
  237,
  237,
  237,
  236,
  237,
  236,
  236,
  236,
  236,
  236,
  236,
  236,
  237,
  238,
  238,
  239,
  239,
  240,
  240,
  240,
  241,
  242,
  242,
  242,
  242,
  242,
  243,
  243,
  243,
  243,
  244,
  245,
  245,
  245,
  245,
  246,
  246,
  246,
  246,
  245,
  246,
  247,
  246,
  245,
  245,
  245,
  246,
  247,
  247,
  247,
  248,
  246,
  247,
  248,
  248,
  249,
  249,
  249,
  249,
  249,
  249,
  249,
  250,
  250,
  250,
  250,
  250,
  251,
  251,
  251,
  251,
  251,
  251,
  251,
  252,
  254,
  254,
  258,
  259,
  259,
  259,
  259,
  260,
  261,
  259,
  258,
  258,
  257,
  257,
  258,
  258,
  259,
  260,
  260,
  260,
  261,
  261,
  261,
  259,
  259,
  258,
  260,
  260,
  261,
  262,
  262,
  262,
  262,
  261,
  261,
  261,
  263,
  263,
  262,
  263,
  264,
  264,
  265,
  265,
  265,
  265,
  265,
  267,
  268,
  270,
  270,
  272,
  272,
  272,
  272,
  272,
  273,
  273,
  273,
  274,
  275,
  275,
  275,
  277,
  277,
  277,
  277,
  277,
  277,
  278,
  280,
  281,
  281,
  282,
  283,
  284,
  285,
  285,
  285,
  285,
  285,
  285,
  285,
  287,
  287,
  287,
  287,
  287,
  287,
  288,
  290,
  291,
  291,
  290,
  289,
  290,
  292,
  294,
  294,
  294,
  294,
  295,
  296,
  296,
  296,
  297,
  297,
  297,
  298,
  298,
  299,
  301,
  302,
  302,
  302,
  301,
  302,
  303,
  304,
  303,
  303,
  305,
  306,
  308,
  309,
  309,
  309,
  312,
  312,
  312,
  311,
  311,
  312,
  313,
  313,
  313,
  313,
  313,
  312,
  312,
  313,
  314,
  313,
  312,
  312,
  312,
  314,
  312,
  313,
  313,
  312,
  313,
  313,
  313,
  314,
  315,
  315,
  315,
  315,
  315,
  315,
  316,
  319,
  323,
  321,
  323,
  323,
  323,
  323],
 'times': ['2017-05-16T17:44:42-04:00',
  '2017-05-16T17:49:44-04:00',
  '2017-05-16T17:54:43-04:00',
  '2017-05-16T17:59:45-04:00',
  '2017-05-16T18:04:45-04:00',
  '2017-05-16T18:09:46-04:00',
  '2017-05-16T18:14:48-04:00',
  '2017-05-16T18:19:48-04:00',
  '2017-05-16T18:24:49-04:00',
  '2017-05-16T18:29:51-04:00',
  '2017-05-16T18:34:51-04:00',
  '2017-05-16T18:39:53-04:00',
  '2017-05-16T18:44:53-04:00',
  '2017-05-16T18:49:54-04:00',
  '2017-05-16T18:54:55-04:00',
  '2017-05-16T18:59:57-04:00',
  '2017-05-16T19:04:58-04:00',
  '2017-05-16T19:09:58-04:00',
  '2017-05-16T19:14:59-04:00',
  '2017-05-16T19:20:00-04:00',
  '2017-05-16T19:25:01-04:00',
  '2017-05-16T19:30:03-04:00',
  '2017-05-16T19:35:03-04:00',
  '2017-05-16T19:40:04-04:00',
  '2017-05-16T19:45:06-04:00',
  '2017-05-16T19:50:08-04:00',
  '2017-05-16T19:55:07-04:00',
  '2017-05-16T20:00:09-04:00',
  '2017-05-16T20:05:09-04:00',
  '2017-05-16T20:10:10-04:00',
  '2017-05-16T20:15:12-04:00',
  '2017-05-16T20:20:13-04:00',
  '2017-05-16T20:25:15-04:00',
  '2017-05-16T20:30:15-04:00',
  '2017-05-16T20:35:15-04:00',
  '2017-05-16T20:40:18-04:00',
  '2017-05-16T20:45:18-04:00',
  '2017-05-16T20:50:18-04:00',
  '2017-05-16T20:55:21-04:00',
  '2017-05-16T21:00:21-04:00',
  '2017-05-16T21:05:21-04:00',
  '2017-05-16T21:10:24-04:00',
  '2017-05-16T21:15:24-04:00',
  '2017-05-16T21:20:24-04:00',
  '2017-05-16T21:25:26-04:00',
  '2017-05-16T21:30:26-04:00',
  '2017-05-16T21:35:27-04:00',
  '2017-05-16T21:40:30-04:00',
  '2017-05-16T21:45:30-04:00',
  '2017-05-16T21:50:30-04:00',
  '2017-05-16T21:55:32-04:00',
  '2017-05-16T22:00:32-04:00',
  '2017-05-16T22:05:33-04:00',
  '2017-05-16T22:10:35-04:00',
  '2017-05-16T22:15:36-04:00',
  '2017-05-16T22:20:36-04:00',
  '2017-05-16T22:25:37-04:00',
  '2017-05-16T22:30:39-04:00',
  '2017-05-16T22:35:39-04:00',
  '2017-05-16T22:40:42-04:00',
  '2017-05-16T22:45:44-04:00',
  '2017-05-16T22:50:42-04:00',
  '2017-05-16T22:55:45-04:00',
  '2017-05-16T23:00:45-04:00',
  '2017-05-16T23:05:45-04:00',
  '2017-05-16T23:10:47-04:00',
  '2017-05-16T23:15:48-04:00',
  '2017-05-16T23:20:50-04:00',
  '2017-05-16T23:25:52-04:00',
  '2017-05-16T23:30:51-04:00',
  '2017-05-16T23:35:53-04:00',
  '2017-05-16T23:40:54-04:00',
  '2017-05-16T23:45:54-04:00',
  '2017-05-16T23:50:56-04:00',
  '2017-05-16T23:55:57-04:00',
  '2017-05-17T00:00:59-04:00',
  '2017-05-17T00:05:59-04:00',
  '2017-05-17T00:10:59-04:00',
  '2017-05-17T00:16:02-04:00',
  '2017-05-17T00:21:02-04:00',
  '2017-05-17T00:26:03-04:00',
  '2017-05-17T00:31:05-04:00',
  '2017-05-17T00:36:05-04:00',
  '2017-05-17T00:41:08-04:00',
  '2017-05-17T00:46:09-04:00',
  '2017-05-17T00:51:08-04:00',
  '2017-05-17T00:56:10-04:00',
  '2017-05-17T01:01:10-04:00',
  '2017-05-17T01:06:11-04:00',
  '2017-05-17T01:11:14-04:00',
  '2017-05-17T01:16:14-04:00',
  '2017-05-17T01:21:14-04:00',
  '2017-05-17T01:26:16-04:00',
  '2017-05-17T01:31:17-04:00',
  '2017-05-17T01:36:17-04:00',
  '2017-05-17T01:41:20-04:00',
  '2017-05-17T01:46:20-04:00',
  '2017-05-17T01:51:21-04:00',
  '2017-05-17T01:56:23-04:00',
  '2017-05-17T02:01:23-04:00',
  '2017-05-17T02:06:25-04:00',
  '2017-05-17T02:11:26-04:00',
  '2017-05-17T02:16:26-04:00',
  '2017-05-17T02:21:28-04:00',
  '2017-05-17T02:26:28-04:00',
  '2017-05-17T02:31:31-04:00',
  '2017-05-17T02:36:31-04:00',
  '2017-05-17T02:41:31-04:00',
  '2017-05-17T02:46:32-04:00',
  '2017-05-17T02:51:34-04:00',
  '2017-05-17T02:56:36-04:00',
  '2017-05-17T03:01:37-04:00',
  '2017-05-17T03:06:37-04:00',
  '2017-05-17T03:11:38-04:00',
  '2017-05-17T03:16:40-04:00',
  '2017-05-17T03:21:40-04:00',
  '2017-05-17T03:26:42-04:00',
  '2017-05-17T03:31:43-04:00',
  '2017-05-17T03:36:43-04:00',
  '2017-05-17T03:41:45-04:00',
  '2017-05-17T03:46:46-04:00',
  '2017-05-17T03:51:46-04:00',
  '2017-05-17T03:56:48-04:00',
  '2017-05-17T04:01:50-04:00',
  '2017-05-17T04:06:51-04:00',
  '2017-05-17T04:11:51-04:00',
  '2017-05-17T04:16:52-04:00',
  '2017-05-17T04:21:54-04:00',
  '2017-05-17T04:26:54-04:00',
  '2017-05-17T04:31:54-04:00',
  '2017-05-17T04:36:57-04:00',
  '2017-05-17T04:41:57-04:00',
  '2017-05-17T04:46:58-04:00',
  '2017-05-17T04:52:00-04:00',
  '2017-05-17T04:57:00-04:00',
  '2017-05-17T05:02:01-04:00',
  '2017-05-17T05:07:03-04:00',
  '2017-05-17T05:12:03-04:00',
  '2017-05-17T05:17:03-04:00',
  '2017-05-17T05:22:05-04:00',
  '2017-05-17T05:27:06-04:00',
  '2017-05-17T05:32:09-04:00',
  '2017-05-17T05:37:09-04:00',
  '2017-05-17T05:42:09-04:00',
  '2017-05-17T05:47:11-04:00',
  '2017-05-17T05:52:11-04:00',
  '2017-05-17T05:57:12-04:00',
  '2017-05-17T06:02:14-04:00',
  '2017-05-17T06:07:15-04:00',
  '2017-05-17T06:12:15-04:00',
  '2017-05-17T06:17:16-04:00',
  '2017-05-17T06:22:18-04:00',
  '2017-05-17T06:27:18-04:00',
  '2017-05-17T06:32:20-04:00',
  '2017-05-17T06:37:21-04:00',
  '2017-05-17T06:42:21-04:00',
  '2017-05-17T06:47:24-04:00',
  '2017-05-17T06:52:24-04:00',
  '2017-05-17T06:57:26-04:00',
  '2017-05-17T07:02:26-04:00',
  '2017-05-17T07:07:27-04:00',
  '2017-05-17T07:12:27-04:00',
  '2017-05-17T07:17:29-04:00',
  '2017-05-17T07:22:30-04:00',
  '2017-05-17T07:27:32-04:00',
  '2017-05-17T07:32:33-04:00',
  '2017-05-17T07:37:33-04:00',
  '2017-05-17T07:42:35-04:00',
  '2017-05-17T07:47:35-04:00',
  '2017-05-17T07:52:36-04:00',
  '2017-05-17T07:57:38-04:00',
  '2017-05-17T08:02:38-04:00',
  '2017-05-17T08:07:38-04:00',
  '2017-05-17T08:12:41-04:00',
  '2017-05-17T08:17:41-04:00',
  '2017-05-17T08:22:41-04:00',
  '2017-05-17T08:27:44-04:00',
  '2017-05-17T08:32:44-04:00',
  '2017-05-17T08:37:45-04:00',
  '2017-05-17T08:42:47-04:00',
  '2017-05-17T08:47:47-04:00',
  '2017-05-17T08:52:48-04:00',
  '2017-05-17T08:57:49-04:00',
  '2017-05-17T09:02:50-04:00',
  '2017-05-17T09:07:51-04:00',
  '2017-05-17T09:12:53-04:00',
  '2017-05-17T09:17:53-04:00',
  '2017-05-17T09:22:55-04:00',
  '2017-05-17T09:27:55-04:00',
  '2017-05-17T09:32:56-04:00',
  '2017-05-17T09:37:57-04:00',
  '2017-05-17T09:42:59-04:00',
  '2017-05-17T09:47:59-04:00',
  '2017-05-17T09:53:00-04:00',
  '2017-05-17T09:58:00-04:00',
  '2017-05-17T10:03:01-04:00',
  '2017-05-17T10:08:04-04:00',
  '2017-05-17T10:13:04-04:00',
  '2017-05-17T10:18:04-04:00',
  '2017-05-17T10:23:05-04:00',
  '2017-05-17T10:28:08-04:00',
  '2017-05-17T10:33:08-04:00',
  '2017-05-17T10:38:10-04:00',
  '2017-05-17T10:43:11-04:00',
  '2017-05-17T10:48:11-04:00',
  '2017-05-17T10:53:13-04:00',
  '2017-05-17T10:58:14-04:00',
  '2017-05-17T11:03:14-04:00',
  '2017-05-17T11:08:16-04:00',
  '2017-05-17T11:13:17-04:00',
  '2017-05-17T11:18:19-04:00',
  '2017-05-17T11:23:19-04:00',
  '2017-05-17T11:28:20-04:00',
  '2017-05-17T11:33:22-04:00',
  '2017-05-17T11:38:22-04:00',
  '2017-05-17T11:43:24-04:00',
  '2017-05-17T11:48:25-04:00',
  '2017-05-17T11:53:32-04:00',
  '2017-05-17T11:58:28-04:00',
  '2017-05-17T12:03:28-04:00',
  '2017-05-17T12:08:28-04:00',
  '2017-05-17T12:13:31-04:00',
  '2017-05-17T12:18:31-04:00',
  '2017-05-17T12:23:31-04:00',
  '2017-05-17T12:28:34-04:00',
  '2017-05-17T12:33:33-04:00',
  '2017-05-17T12:38:36-04:00',
  '2017-05-17T12:43:37-04:00',
  '2017-05-17T12:48:37-04:00',
  '2017-05-17T12:53:39-04:00',
  '2017-05-17T12:58:39-04:00',
  '2017-05-17T13:03:40-04:00',
  '2017-05-17T13:08:42-04:00',
  '2017-05-17T13:13:43-04:00',
  '2017-05-17T13:18:43-04:00',
  '2017-05-17T13:23:46-04:00',
  '2017-05-17T13:28:46-04:00',
  '2017-05-17T13:33:48-04:00',
  '2017-05-17T13:38:48-04:00',
  '2017-05-17T13:43:49-04:00',
  '2017-05-17T13:48:50-04:00',
  '2017-05-17T13:53:51-04:00',
  '2017-05-17T13:58:52-04:00',
  '2017-05-17T14:03:54-04:00',
  '2017-05-17T14:08:54-04:00',
  '2017-05-17T14:13:55-04:00',
  '2017-05-17T14:18:57-04:00',
  '2017-05-17T14:23:57-04:00',
  '2017-05-17T14:29:00-04:00',
  '2017-05-17T14:34:00-04:00',
  '2017-05-17T14:39:00-04:00',
  '2017-05-17T14:44:03-04:00',
  '2017-05-17T14:49:03-04:00',
  '2017-05-17T14:54:03-04:00',
  '2017-05-17T14:59:06-04:00',
  '2017-05-17T15:04:06-04:00',
  '2017-05-17T15:09:06-04:00',
  '2017-05-17T15:14:09-04:00',
  '2017-05-17T15:19:09-04:00',
  '2017-05-17T15:24:12-04:00',
  '2017-05-17T15:29:12-04:00',
  '2017-05-17T15:34:12-04:00',
  '2017-05-17T15:39:14-04:00',
  '2017-05-17T15:44:15-04:00',
  '2017-05-17T15:49:15-04:00',
  '2017-05-17T15:54:17-04:00',
  '2017-05-17T15:59:18-04:00',
  '2017-05-17T16:04:18-04:00',
  '2017-05-17T16:09:20-04:00',
  '2017-05-17T16:14:21-04:00',
  '2017-05-17T16:19:23-04:00',
  '2017-05-17T16:24:23-04:00',
  '2017-05-17T16:29:24-04:00',
  '2017-05-17T16:34:26-04:00',
  '2017-05-17T16:39:28-04:00',
  '2017-05-17T16:44:26-04:00',
  '2017-05-17T16:49:28-04:00',
  '2017-05-17T16:54:29-04:00',
  '2017-05-17T16:59:29-04:00',
  '2017-05-17T17:04:32-04:00',
  '2017-05-17T17:09:32-04:00',
  '2017-05-17T17:14:34-04:00',
  '2017-05-17T17:19:34-04:00',
  '2017-05-17T17:24:35-04:00',
  '2017-05-17T17:29:37-04:00',
  '2017-05-17T17:34:38-04:00',
  '2017-05-17T17:39:38-04:00',
  '2017-05-17T17:44:39-04:00',
  '2017-05-17T17:49:41-04:00',
  '2017-05-17T17:54:41-04:00',
  '2017-05-17T17:59:43-04:00',
  '2017-05-17T18:04:44-04:00',
  '2017-05-17T18:09:44-04:00',
  '2017-05-17T18:14:45-04:00',
  '2017-05-17T18:19:47-04:00',
  '2017-05-17T18:24:47-04:00',
  '2017-05-17T18:29:49-04:00',
  '2017-05-17T18:34:50-04:00',
  '2017-05-17T18:39:50-04:00',
  '2017-05-17T18:44:52-04:00',
  '2017-05-17T18:49:53-04:00',
  '2017-05-17T18:54:55-04:00',
  '2017-05-17T18:59:55-04:00',
  '2017-05-17T19:04:56-04:00',
  '2017-05-17T19:09:58-04:00',
  '2017-05-17T19:14:58-04:00',
  '2017-05-17T19:19:58-04:00',
  '2017-05-17T19:25:01-04:00',
  '2017-05-17T19:30:01-04:00',
  '2017-05-17T19:35:01-04:00',
  '2017-05-17T19:40:04-04:00',
  '2017-05-17T19:45:04-04:00',
  '2017-05-17T19:50:04-04:00',
  '2017-05-17T19:55:07-04:00',
  '2017-05-17T20:00:07-04:00',
  '2017-05-17T20:05:07-04:00',
  '2017-05-17T20:10:10-04:00',
  '2017-05-17T20:15:10-04:00',
  '2017-05-17T20:20:10-04:00',
  '2017-05-17T20:25:12-04:00',
  '2017-05-17T20:30:12-04:00',
  '2017-05-17T20:35:13-04:00',
  '2017-05-17T20:40:16-04:00',
  '2017-05-17T20:45:16-04:00',
  '2017-05-17T20:50:16-04:00',
  '2017-05-17T20:55:18-04:00',
  '2017-05-17T21:00:19-04:00',
  '2017-05-17T21:05:20-04:00',
  '2017-05-17T21:10:22-04:00',
  '2017-05-17T21:15:22-04:00',
  '2017-05-17T21:20:22-04:00',
  '2017-05-17T21:25:24-04:00',
  '2017-05-17T21:30:25-04:00',
  '2017-05-17T21:35:25-04:00',
  '2017-05-17T21:40:28-04:00',
  '2017-05-17T21:45:28-04:00',
  '2017-05-17T21:50:28-04:00',
  '2017-05-17T21:55:30-04:00',
  '2017-05-17T22:00:31-04:00',
  '2017-05-17T22:05:31-04:00',
  '2017-05-17T22:10:33-04:00',
  '2017-05-17T22:15:34-04:00',
  '2017-05-17T22:20:35-04:00',
  '2017-05-17T22:25:37-04:00',
  '2017-05-17T22:30:37-04:00',
  '2017-05-17T22:35:39-04:00',
  '2017-05-17T22:40:39-04:00',
  '2017-05-17T22:45:40-04:00',
  '2017-05-17T22:50:42-04:00',
  '2017-05-17T22:55:42-04:00',
  '2017-05-17T23:00:45-04:00',
  '2017-05-17T23:05:45-04:00',
  '2017-05-17T23:10:45-04:00',
  '2017-05-17T23:15:49-04:00',
  '2017-05-17T23:20:48-04:00',
  '2017-05-17T23:25:48-04:00',
  '2017-05-17T23:30:51-04:00',
  '2017-05-17T23:35:51-04:00',
  '2017-05-17T23:40:53-04:00',
  '2017-05-17T23:45:54-04:00',
  '2017-05-17T23:50:54-04:00',
  '2017-05-17T23:55:56-04:00',
  '2017-05-18T00:00:56-04:00',
  '2017-05-18T00:05:57-04:00',
  '2017-05-18T00:10:59-04:00',
  '2017-05-18T00:16:00-04:00',
  '2017-05-18T00:21:00-04:00',
  '2017-05-18T00:26:02-04:00',
  '2017-05-18T00:31:02-04:00',
  '2017-05-18T00:36:05-04:00',
  '2017-05-18T00:41:05-04:00',
  '2017-05-18T00:46:06-04:00',
  '2017-05-18T00:51:07-04:00',
  '2017-05-18T00:56:08-04:00',
  '2017-05-18T01:01:09-04:00',
  '2017-05-18T01:06:11-04:00',
  '2017-05-18T01:11:11-04:00',
  '2017-05-18T01:16:13-04:00',
  '2017-05-18T01:21:13-04:00',
  '2017-05-18T01:26:14-04:00',
  '2017-05-18T01:31:15-04:00',
  '2017-05-18T01:36:17-04:00',
  '2017-05-18T01:41:17-04:00',
  '2017-05-18T01:46:19-04:00',
  '2017-05-18T01:51:20-04:00',
  '2017-05-18T01:56:20-04:00',
  '2017-05-18T02:01:22-04:00',
  '2017-05-18T02:06:23-04:00',
  '2017-05-18T02:11:27-04:00',
  '2017-05-18T02:16:25-04:00',
  '2017-05-18T02:21:26-04:00',
  '2017-05-18T02:26:28-04:00',
  '2017-05-18T02:31:28-04:00',
  '2017-05-18T02:36:29-04:00',
  '2017-05-18T02:41:30-04:00',
  '2017-05-18T02:46:31-04:00',
  '2017-05-18T02:51:32-04:00',
  '2017-05-18T02:56:34-04:00',
  '2017-05-18T03:01:35-04:00',
  '2017-05-18T03:06:35-04:00',
  '2017-05-18T03:11:37-04:00',
  '2017-05-18T03:16:38-04:00',
  '2017-05-18T03:21:40-04:00',
  '2017-05-18T03:26:40-04:00',
  '2017-05-18T03:31:40-04:00',
  '2017-05-18T03:36:43-04:00',
  '2017-05-18T03:41:43-04:00',
  '2017-05-18T03:46:43-04:00',
  '2017-05-18T03:51:46-04:00',
  '2017-05-18T03:56:46-04:00',
  '2017-05-18T04:01:46-04:00',
  '2017-05-18T04:06:49-04:00',
  '2017-05-18T04:11:49-04:00',
  '2017-05-18T04:16:51-04:00',
  '2017-05-18T04:21:51-04:00',
  '2017-05-18T04:26:52-04:00',
  '2017-05-18T04:31:54-04:00',
  '2017-05-18T04:36:55-04:00',
  '2017-05-18T04:41:55-04:00',
  '2017-05-18T04:46:56-04:00',
  '2017-05-18T04:51:57-04:00',
  '2017-05-18T04:56:58-04:00',
  '2017-05-18T05:02:00-04:00',
  '2017-05-18T05:07:01-04:00',
  '2017-05-18T05:12:01-04:00',
  '2017-05-18T05:17:03-04:00',
  '2017-05-18T05:22:04-04:00',
  '2017-05-18T05:27:04-04:00',
  '2017-05-18T05:32:06-04:00',
  '2017-05-18T05:37:07-04:00',
  '2017-05-18T05:42:07-04:00',
  '2017-05-18T05:47:08-04:00',
  '2017-05-18T05:52:10-04:00',
  '2017-05-18T05:57:12-04:00',
  '2017-05-18T06:02:12-04:00',
  '2017-05-18T06:07:13-04:00',
  '2017-05-18T06:12:14-04:00',
  '2017-05-18T06:17:15-04:00',
  '2017-05-18T06:22:15-04:00',
  '2017-05-18T06:27:16-04:00',
  '2017-05-18T06:32:18-04:00',
  '2017-05-18T06:37:18-04:00',
  '2017-05-18T06:42:19-04:00',
  '2017-05-18T06:47:21-04:00',
  '2017-05-18T06:52:22-04:00',
  '2017-05-18T06:57:24-04:00',
  '2017-05-18T07:02:24-04:00',
  '2017-05-18T07:07:24-04:00',
  '2017-05-18T07:12:27-04:00',
  '2017-05-18T07:17:27-04:00',
  '2017-05-18T07:22:27-04:00',
  '2017-05-18T07:27:30-04:00',
  '2017-05-18T07:32:30-04:00',
  '2017-05-18T07:37:30-04:00',
  '2017-05-18T07:42:33-04:00',
  '2017-05-18T07:47:33-04:00',
  '2017-05-18T07:52:33-04:00',
  '2017-05-18T07:57:36-04:00',
  '2017-05-18T08:02:36-04:00',
  '2017-05-18T08:07:36-04:00',
  '2017-05-18T08:12:39-04:00',
  '2017-05-18T08:17:39-04:00',
  '2017-05-18T08:22:39-04:00',
  '2017-05-18T08:27:43-04:00',
  '2017-05-18T08:32:41-04:00',
  '2017-05-18T08:37:44-04:00',
  '2017-05-18T08:42:45-04:00',
  '2017-05-18T08:47:45-04:00',
  '2017-05-18T08:52:47-04:00',
  '2017-05-18T08:57:47-04:00',
  '2017-05-18T09:02:48-04:00',
  '2017-05-18T09:07:50-04:00',
  '2017-05-18T09:12:51-04:00',
  '2017-05-18T09:17:51-04:00',
  '2017-05-18T09:22:52-04:00',
  '2017-05-18T09:27:52-04:00',
  '2017-05-18T09:32:54-04:00',
  '2017-05-18T09:37:56-04:00',
  '2017-05-18T09:42:56-04:00',
  '2017-05-18T09:47:59-04:00',
  '2017-05-18T09:52:57-04:00',
  '2017-05-18T09:58:04-04:00',
  '2017-05-18T10:03:00-04:00',
  '2017-05-18T10:08:02-04:00',
  '2017-05-18T10:13:03-04:00',
  '2017-05-18T10:18:03-04:00',
  '2017-05-18T10:23:05-04:00',
  '2017-05-18T10:28:06-04:00',
  '2017-05-18T10:33:06-04:00',
  '2017-05-18T10:38:08-04:00',
  '2017-05-18T10:43:09-04:00',
  '2017-05-18T10:48:11-04:00',
  '2017-05-18T10:53:11-04:00',
  '2017-05-18T10:58:11-04:00',
  '2017-05-18T11:03:14-04:00',
  '2017-05-18T11:08:14-04:00',
  '2017-05-18T11:13:17-04:00',
  '2017-05-18T11:18:17-04:00',
  '2017-05-18T11:23:17-04:00',
  '2017-05-18T11:28:20-04:00',
  '2017-05-18T11:33:20-04:00',
  '2017-05-18T11:38:20-04:00',
  '2017-05-18T11:43:22-04:00',
  '2017-05-18T11:48:23-04:00',
  '2017-05-18T11:53:25-04:00',
  '2017-05-18T11:58:25-04:00',
  '2017-05-18T12:03:25-04:00',
  '2017-05-18T12:08:28-04:00',
  '2017-05-18T12:13:28-04:00',
  '2017-05-18T12:18:29-04:00',
  '2017-05-18T12:23:31-04:00',
  '2017-05-18T12:28:31-04:00',
  '2017-05-18T12:33:34-04:00',
  '2017-05-18T12:38:34-04:00',
  '2017-05-18T12:43:34-04:00',
  '2017-05-18T12:48:36-04:00',
  '2017-05-18T12:53:36-04:00',
  '2017-05-18T12:58:37-04:00',
  '2017-05-18T13:03:40-04:00',
  '2017-05-18T13:08:40-04:00',
  '2017-05-18T13:13:42-04:00',
  '2017-05-18T13:18:42-04:00',
  '2017-05-18T13:23:43-04:00',
  '2017-05-18T13:28:45-04:00',
  '2017-05-18T13:33:46-04:00',
  '2017-05-18T13:38:46-04:00',
  '2017-05-18T13:43:47-04:00',
  '2017-05-18T13:48:49-04:00',
  '2017-05-18T13:53:50-04:00',
  '2017-05-18T13:58:51-04:00',
  '2017-05-18T14:03:52-04:00',
  '2017-05-18T14:08:53-04:00',
  '2017-05-18T14:13:54-04:00',
  '2017-05-18T14:18:54-04:00',
  '2017-05-18T14:23:59-04:00',
  '2017-05-18T14:28:57-04:00',
  '2017-05-18T14:33:57-04:00',
  '2017-05-18T14:39:00-04:00',
  '2017-05-18T14:44:00-04:00',
  '2017-05-18T14:49:02-04:00',
  '2017-05-18T14:54:03-04:00',
  '2017-05-18T14:59:03-04:00',
  '2017-05-18T15:04:04-04:00',
  '2017-05-18T15:09:06-04:00',
  '2017-05-18T15:14:06-04:00',
  '2017-05-18T15:19:08-04:00',
  '2017-05-18T15:24:09-04:00',
  '2017-05-18T15:29:09-04:00',
  '2017-05-18T15:34:11-04:00',
  '2017-05-18T15:39:12-04:00',
  '2017-05-18T15:44:14-04:00',
  '2017-05-18T15:49:14-04:00',
  '2017-05-18T15:54:15-04:00',
  '2017-05-18T15:59:19-04:00',
  '2017-05-18T16:04:17-04:00',
  '2017-05-18T16:09:19-04:00',
  '2017-05-18T16:14:19-04:00',
  '2017-05-18T16:19:20-04:00',
  '2017-05-18T16:24:21-04:00',
  '2017-05-18T16:29:23-04:00',
  '2017-05-18T16:34:23-04:00',
  '2017-05-18T16:39:26-04:00',
  '2017-05-18T16:44:26-04:00',
  '2017-05-18T16:49:26-04:00',
  '2017-05-18T16:54:29-04:00',
  '2017-05-18T16:59:29-04:00',
  '2017-05-18T17:04:29-04:00',
  '2017-05-18T17:09:31-04:00',
  '2017-05-18T17:14:31-04:00',
  '2017-05-18T17:19:32-04:00',
  '2017-05-18T17:24:35-04:00',
  '2017-05-18T17:29:35-04:00',
  '2017-05-18T17:34:35-04:00',
  '2017-05-18T17:39:37-04:00',
  '2017-05-18T17:44:38-04:00',
  '2017-05-18T17:49:38-04:00',
  '2017-05-18T17:54:39-04:00',
  '2017-05-18T17:59:41-04:00',
  '2017-05-18T18:04:42-04:00',
  '2017-05-18T18:09:42-04:00',
  '2017-05-18T18:14:44-04:00',
  '2017-05-18T18:19:46-04:00',
  '2017-05-18T18:24:46-04:00',
  '2017-05-18T18:29:48-04:00',
  '2017-05-18T18:34:48-04:00',
  '2017-05-18T18:39:49-04:00',
  '2017-05-18T18:44:50-04:00',
  '2017-05-18T18:49:52-04:00',
  '2017-05-18T18:54:53-04:00',
  '2017-05-18T18:59:53-04:00',
  '2017-05-18T19:04:53-04:00',
  '2017-05-18T19:09:55-04:00',
  '2017-05-18T19:14:56-04:00',
  '2017-05-18T19:19:58-04:00',
  '2017-05-18T19:24:58-04:00',
  '2017-05-18T19:29:59-04:00',
  '2017-05-18T19:35:00-04:00',
  '2017-05-18T19:40:01-04:00',
  '2017-05-18T19:45:02-04:00',
  '2017-05-18T19:50:04-04:00',
  '2017-05-18T19:55:04-04:00',
  '2017-05-18T20:00:04-04:00',
  '2017-05-18T20:05:07-04:00',
  '2017-05-18T20:10:07-04:00',
  '2017-05-18T20:15:08-04:00',
  '2017-05-18T20:20:11-04:00',
  '2017-05-18T20:25:10-04:00',
  '2017-05-18T20:30:11-04:00',
  '2017-05-18T20:35:13-04:00',
  '2017-05-18T20:40:13-04:00',
  '2017-05-18T20:45:14-04:00',
  '2017-05-18T20:50:15-04:00',
  '2017-05-18T20:55:15-04:00',
  '2017-05-18T21:00:17-04:00',
  '2017-05-18T21:05:19-04:00',
  '2017-05-18T21:10:19-04:00',
  '2017-05-18T21:15:20-04:00',
  '2017-05-18T21:20:21-04:00',
  '2017-05-18T21:25:22-04:00',
  '2017-05-18T21:30:23-04:00',
  '2017-05-18T21:35:25-04:00',
  '2017-05-18T21:40:25-04:00',
  '2017-05-18T21:45:26-04:00',
  '2017-05-18T21:50:28-04:00',
  '2017-05-18T21:55:28-04:00',
  '2017-05-18T22:00:29-04:00',
  '2017-05-18T22:05:31-04:00',
  '2017-05-18T22:10:31-04:00',
  '2017-05-18T22:15:32-04:00',
  '2017-05-18T22:20:34-04:00',
  '2017-05-18T22:25:34-04:00',
  '2017-05-18T22:30:37-04:00',
  '2017-05-18T22:35:37-04:00',
  '2017-05-18T22:40:37-04:00',
  '2017-05-18T22:45:40-04:00',
  '2017-05-18T22:50:40-04:00',
  '2017-05-18T22:55:41-04:00',
  '2017-05-18T23:00:43-04:00',
  '2017-05-18T23:05:43-04:00',
  '2017-05-18T23:10:45-04:00',
  '2017-05-18T23:15:46-04:00',
  '2017-05-18T23:20:46-04:00',
  '2017-05-18T23:25:48-04:00',
  '2017-05-18T23:30:49-04:00',
  '2017-05-18T23:35:49-04:00',
  '2017-05-18T23:40:51-04:00',
  '2017-05-18T23:45:52-04:00',
  '2017-05-18T23:50:54-04:00',
  '2017-05-18T23:55:54-04:00',
  '2017-05-19T00:00:55-04:00',
  '2017-05-19T00:05:57-04:00',
  '2017-05-19T00:10:57-04:00',
  '2017-05-19T00:15:58-04:00',
  '2017-05-19T00:21:00-04:00',
  '2017-05-19T00:26:00-04:00',
  '2017-05-19T00:31:01-04:00',
  '2017-05-19T00:36:03-04:00',
  '2017-05-19T00:41:03-04:00',
  '2017-05-19T00:46:04-04:00',
  '2017-05-19T00:51:05-04:00',
  '2017-05-19T00:56:06-04:00',
  '2017-05-19T01:01:09-04:00',
  '2017-05-19T01:06:09-04:00',
  '2017-05-19T01:11:09-04:00',
  '2017-05-19T01:16:11-04:00',
  '2017-05-19T01:21:12-04:00',
  '2017-05-19T01:26:12-04:00',
  '2017-05-19T01:31:15-04:00',
  '2017-05-19T01:36:15-04:00',
  '2017-05-19T01:41:15-04:00',
  '2017-05-19T01:46:18-04:00',
  '2017-05-19T01:51:18-04:00',
  '2017-05-19T01:56:20-04:00',
  '2017-05-19T02:01:21-04:00',
  '2017-05-19T02:06:21-04:00',
  '2017-05-19T02:11:22-04:00',
  '2017-05-19T02:16:24-04:00',
  '2017-05-19T02:21:24-04:00',
  '2017-05-19T02:26:26-04:00',
  '2017-05-19T02:31:27-04:00',
  '2017-05-19T02:36:27-04:00',
  '2017-05-19T02:41:29-04:00',
  '2017-05-19T02:46:30-04:00',
  '2017-05-19T02:51:32-04:00',
  '2017-05-19T02:56:32-04:00',
  '2017-05-19T03:01:33-04:00',
  '2017-05-19T03:06:35-04:00',
  '2017-05-19T03:11:35-04:00',
  '2017-05-19T03:16:36-04:00',
  '2017-05-19T03:21:38-04:00',
  '2017-05-19T03:26:38-04:00',
  '2017-05-19T03:31:39-04:00',
  '2017-05-19T03:36:41-04:00',
  '2017-05-19T03:41:41-04:00',
  '2017-05-19T03:46:42-04:00',
  '2017-05-19T03:51:43-04:00',
  '2017-05-19T03:56:44-04:00',
  '2017-05-19T04:01:47-04:00',
  '2017-05-19T04:06:47-04:00',
  '2017-05-19T04:11:47-04:00',
  '2017-05-19T04:16:49-04:00',
  '2017-05-19T04:21:49-04:00',
  '2017-05-19T04:26:50-04:00',
  '2017-05-19T04:31:52-04:00',
  '2017-05-19T04:36:53-04:00',
  '2017-05-19T04:41:53-04:00',
  '2017-05-19T04:46:55-04:00',
  '2017-05-19T04:51:56-04:00',
  '2017-05-19T04:56:56-04:00',
  '2017-05-19T05:01:59-04:00',
  '2017-05-19T05:06:59-04:00',
  '2017-05-19T05:11:59-04:00',
  '2017-05-19T05:17:02-04:00',
  '2017-05-19T05:22:02-04:00',
  '2017-05-19T05:27:03-04:00',
  '2017-05-19T05:32:05-04:00',
  '2017-05-19T05:37:05-04:00',
  '2017-05-19T05:42:06-04:00',
  '2017-05-19T05:47:07-04:00',
  '2017-05-19T05:52:08-04:00',
  '2017-05-19T05:57:10-04:00',
  '2017-05-19T06:02:10-04:00',
  '2017-05-19T06:07:11-04:00',
  '2017-05-19T06:12:13-04:00',
  '2017-05-19T06:17:13-04:00',
  '2017-05-19T06:22:14-04:00',
  '2017-05-19T06:27:16-04:00',
  '2017-05-19T06:32:17-04:00',
  '2017-05-19T06:37:17-04:00',
  '2017-05-19T06:42:19-04:00',
  '2017-05-19T06:47:23-04:00',
  '2017-05-19T06:52:20-04:00',
  '2017-05-19T06:57:22-04:00',
  '2017-05-19T07:02:22-04:00',
  '2017-05-19T07:07:23-04:00',
  '2017-05-19T07:12:25-04:00',
  '2017-05-19T07:17:25-04:00',
  '2017-05-19T07:22:26-04:00',
  '2017-05-19T07:27:28-04:00',
  '2017-05-19T07:32:28-04:00',
  '2017-05-19T07:37:29-04:00',
  '2017-05-19T07:42:31-04:00',
  '2017-05-19T07:47:31-04:00',
  '2017-05-19T07:52:32-04:00',
  '2017-05-19T07:57:33-04:00',
  '2017-05-19T08:02:34-04:00',
  '2017-05-19T08:07:35-04:00',
  '2017-05-19T08:12:37-04:00',
  '2017-05-19T08:17:38-04:00',
  '2017-05-19T08:22:38-04:00',
  '2017-05-19T08:27:39-04:00',
  '2017-05-19T08:32:40-04:00',
  '2017-05-19T08:37:41-04:00',
  '2017-05-19T08:42:43-04:00',
  '2017-05-19T08:47:43-04:00',
  '2017-05-19T08:52:44-04:00',
  '2017-05-19T08:57:46-04:00',
  '2017-05-19T09:02:47-04:00',
  '2017-05-19T09:07:47-04:00',
  '2017-05-19T09:12:49-04:00',
  '2017-05-19T09:17:49-04:00',
  '2017-05-19T09:22:50-04:00',
  '2017-05-19T09:27:52-04:00',
  '2017-05-19T09:32:55-04:00',
  '2017-05-19T09:37:53-04:00',
  '2017-05-19T09:42:54-04:00',
  '2017-05-19T09:47:55-04:00',
  '2017-05-19T09:52:58-04:00',
  '2017-05-19T09:57:58-04:00',
  '2017-05-19T10:02:58-04:00',
  '2017-05-19T10:08:00-04:00',
  '2017-05-19T10:13:01-04:00',
  '2017-05-19T10:18:03-04:00',
  '2017-05-19T10:23:03-04:00',
  '2017-05-19T10:28:04-04:00',
  '2017-05-19T10:33:06-04:00',
  '2017-05-19T10:38:06-04:00',
  '2017-05-19T10:43:07-04:00',
  '2017-05-19T10:48:09-04:00',
  '2017-05-19T10:53:09-04:00',
  '2017-05-19T10:58:10-04:00',
  '2017-05-19T11:03:12-04:00',
  '2017-05-19T11:08:12-04:00',
  '2017-05-19T11:13:15-04:00',
  '2017-05-19T11:18:15-04:00',
  '2017-05-19T11:23:15-04:00',
  '2017-05-19T11:28:17-04:00',
  '2017-05-19T11:33:17-04:00',
  '2017-05-19T11:38:18-04:00',
  '2017-05-19T11:43:22-04:00',
  '2017-05-19T11:48:21-04:00',
  '2017-05-19T11:53:22-04:00',
  '2017-05-19T11:58:23-04:00',
  '2017-05-19T12:03:24-04:00',
  '2017-05-19T12:08:26-04:00',
  '2017-05-19T12:13:27-04:00',
  '2017-05-19T12:18:27-04:00',
  '2017-05-19T12:23:28-04:00',
  '2017-05-19T12:28:30-04:00',
  '2017-05-19T12:33:30-04:00',
  '2017-05-19T12:38:32-04:00',
  '2017-05-19T12:43:32-04:00',
  '2017-05-19T12:48:34-04:00',
  '2017-05-19T12:53:35-04:00',
  '2017-05-19T12:58:35-04:00',
  '2017-05-19T13:03:38-04:00',
  '2017-05-19T13:08:38-04:00',
  '2017-05-19T13:13:38-04:00',
  '2017-05-19T13:18:39-04:00',
  '2017-05-19T13:23:41-04:00',
  '2017-05-19T13:28:41-04:00',
  '2017-05-19T13:33:44-04:00',
  '2017-05-19T13:38:44-04:00',
  '2017-05-19T13:43:45-04:00',
  '2017-05-19T13:48:47-04:00',
  '2017-05-19T13:53:49-04:00',
  '2017-05-19T13:58:49-04:00',
  '2017-05-19T14:03:50-04:00',
  '2017-05-19T14:08:50-04:00',
  '2017-05-19T14:13:52-04:00',
  '2017-05-19T14:18:53-04:00',
  '2017-05-19T14:23:53-04:00',
  '2017-05-19T14:28:55-04:00',
  '2017-05-19T14:33:56-04:00',
  '2017-05-19T14:38:58-04:00',
  '2017-05-19T14:43:58-04:00',
  '2017-05-19T14:48:58-04:00',
  '2017-05-19T14:54:01-04:00',
  '2017-05-19T14:59:01-04:00',
  '2017-05-19T15:04:01-04:00',
  '2017-05-19T15:09:04-04:00',
  '2017-05-19T15:14:06-04:00',
  '2017-05-19T15:19:04-04:00',
  '2017-05-19T15:24:07-04:00',
  '2017-05-19T15:29:07-04:00',
  '2017-05-19T15:34:09-04:00',
  '2017-05-19T15:39:10-04:00',
  '2017-05-19T15:44:10-04:00',
  '2017-05-19T15:49:12-04:00',
  '2017-05-19T15:54:12-04:00',
  '2017-05-19T15:59:13-04:00',
  '2017-05-19T16:04:15-04:00',
  '2017-05-19T16:09:16-04:00',
  '2017-05-19T16:14:16-04:00',
  '2017-05-19T16:19:18-04:00',
  '2017-05-19T16:24:19-04:00',
  '2017-05-19T16:29:21-04:00',
  '2017-05-19T16:34:21-04:00',
  '2017-05-19T16:39:21-04:00',
  '2017-05-19T16:44:23-04:00',
  '2017-05-19T16:49:23-04:00',
  '2017-05-19T16:54:24-04:00',
  '2017-05-19T16:59:26-04:00',
  '2017-05-19T17:04:27-04:00',
  '2017-05-19T17:09:27-04:00',
  '2017-05-19T17:14:29-04:00',
  '2017-05-19T17:19:30-04:00',
  '2017-05-19T17:24:32-04:00',
  '2017-05-19T17:29:33-04:00',
  '2017-05-19T17:34:33-04:00',
  '2017-05-19T17:39:34-04:00',
  '2017-05-19T17:44:36-04:00',
  '2017-05-19T17:49:36-04:00',
  '2017-05-19T17:54:38-04:00',
  '2017-05-19T17:59:39-04:00',
  '2017-05-19T18:04:39-04:00',
  '2017-05-19T18:09:40-04:00',
  '2017-05-19T18:14:42-04:00',
  '2017-05-19T18:19:42-04:00',
  '2017-05-19T18:24:44-04:00',
  '2017-05-19T18:29:45-04:00',
  '2017-05-19T18:34:45-04:00',
  '2017-05-19T18:39:46-04:00',
  '2017-05-19T18:44:48-04:00',
  '2017-05-19T18:49:48-04:00']}

In [ ]:


In [48]:
import pytz

In [51]:
BOSTON = pytz.timezone('America/New_York')

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:
df_times = pd.DataFrame(list(db['raw'].find({"type":"max_id"})))

In [ ]:
df_times['datetime'] = pd.to_datetime(df_times['time']*10**9)

In [ ]:
df_times

In [ ]:
df_times.plot(x='datetime', y='test')

In [ ]:
df_times.set_value(0, 'test', 0)

In [ ]:
def derivative_time():
    prev_id = 14349758
    prev_time = 1494944438.3075223
    for row in df_times.itertuples():
        index = row[0]
        if index > 0:
            time_diff = (row[3] - prev_time)
            id_dff = row[2] - prev_id
            df_times.set_value(index, 'time_diff',(time_diff*1.0))
            df_times.set_value(index, 'test',(id_dff/time_diff*1.0))
            prev_id = row[2]
            prev_time = row[3]

In [ ]:
derivative_time()

In [ ]:
df_times

In [ ]:
df_times['time'][0]

In [ ]:
df_times['time_diff'] = pd.Series()

In [ ]:
bs = list(db['raw'].find({"type":"best"}))

In [ ]:
len(bs[0]['bests'])

In [ ]:
df_bs = pd.DataFrame(columns=['_id', 'time', 'rank'])

In [ ]:
df_bs.append({'_id': 1, 'time': 0, 'rank': 0}, ignore_index=True)

In [ ]:
df_bs

In [ ]:
with open("bests.csv", "w") as b:
    b.write("i,item_id,time,rank\n")
    c = 0
    for entry in tqdm(bs):
        time = entry['time']
        for i, v in enumerate(entry['bests']):
            rank = i + 1
            _id = v
            b.write(f"{c},{_id},{time},{rank}\n")
            c += 1

In [ ]:
df_bs = pd.read_csv("bests.csv", index_col=0)

In [ ]:
df_bs[df_bs['item_id'] == 14326439]

In [ ]:
df_bs.groupby('item_id').size().sort_values()

In [ ]:
df_bs['datetime'] = pd.to_datetime(df_bs['time']*10**9)

In [ ]:
df_bs[df_bs['item_id'] == 14330547].plot(x='datetime', y='rank')

In [ ]:
df_bs

Now let do for top


In [ ]:
ts = list(db['raw'].find({"type":"top"}))
with open("tops.csv", "a") as tf:
#    tf.write("i,item_id,time,rank\n")
    c = 2355047
    for entry in tqdm(ts):
        time = entry['time']
        for i, v in enumerate(entry['bests']):
            rank = i + 1
            _id = v
            tf.write(f"{c},{_id},{time},{rank}\n")
            c += 1

In [7]:
df_ts = pd.read_csv("tops.csv", index_col=0)

In [ ]:
df_ts['datetime'] = pd.to_datetime(df_ts['time']*10**9)

In [ ]:
plt.gca().invert_yaxis()

In [ ]:
df_ts.groupby('item_id').size().sort_values()

In [ ]:
df_ts_ts2 = df_ts[df_ts['item_id'] == 14218408][['time', 'rank']].set_index('time')

In [8]:
df_ts_unique = df_ts['item_id'].unique()

In [ ]:


In [ ]:
json.dumps(df_ts_ts2.to_dict())

In [ ]:
df_ts_ts2 = df_ts[df_ts['item_id'] == 14218408][['time', 'rank']]

In [ ]:
df_ts_ts2['ntime'] = ((df_ts_ts2['time']*10**5).astype(int))

In [ ]:
bb = [(str(x[0]), int(x[1])) for x in df_ts_ts2[['ntime', 'rank']].values]

In [ ]:
json.dumps({"rankings": bb})

In [ ]:
str(df_ts_ts2[['ntime', 'rank']].values[1][0])

In [ ]:
bb

In [13]:
def get_time_series(_id):
    dfs = df_ts[df_ts['item_id'] == _id][['time', 'rank']]
    dfs['ntime'] = ((dfs['time']*10**5).astype(int))
    bb = [(str(x[0]), int(x[1])) for x in dfs[['ntime', 'rank']].values]
    return {
        "id": _id,
        "rankings": bb
    }

def insert_timeseries():
    col = db['time_series']
    for _id in tqdm(df_ts_unique):
        _id = int(_id)
        ts = get_time_series(_id)
        col.insert_one(ts)

In [15]:
insert_timeseries()


  0%|          | 0/3556 [00:00<?, ?it/s]
  0%|          | 1/3556 [00:00<13:07,  4.51it/s]
  0%|          | 4/3556 [00:00<10:04,  5.88it/s]
  0%|          | 6/3556 [00:00<07:59,  7.41it/s]
  0%|          | 8/3556 [00:00<06:34,  9.00it/s]
  0%|          | 11/3556 [00:00<05:27, 10.84it/s]
  0%|          | 13/3556 [00:00<04:47, 12.33it/s]
  0%|          | 16/3556 [00:00<04:12, 14.00it/s]
  1%|          | 18/3556 [00:01<03:57, 14.88it/s]
  1%|          | 21/3556 [00:01<03:34, 16.49it/s]
  1%|          | 24/3556 [00:01<03:20, 17.58it/s]
100%|██████████| 3556/3556 [02:46<00:00, 25.08it/s]

In [ ]: