In [7]:
import os
execfile("../script/utils.py")
eventsPath = os.environ["YAHOO_DATA"]
splitedRdd = sc.textFile(eventsPath + "/splitedData")
splitedRdd = splitedRdd.map(parseContextData2)
#splitedRdd = sc.parallelize(splitedRdd.take(2000))
splitedRdd.take(1)
#(uid,[[train],[test]]


Out[7]:
[(18435,
  [[train(itemId=94874, context=context(ts=1420959850, city=2995, lat=42.897598, lon=-87.853897, moving=1, location=1, time_of_day=1)),
    train(itemId=14861, context=context(ts=1420982193, city=2995, lat=42.897644, lon=-87.853874, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420982271, city=2995, lat=42.897644, lon=-87.853874, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420982504, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1420983397, city=2995, lat=42.897724, lon=-87.853844, moving=1, location=2, time_of_day=2)),
    train(itemId=54389, context=context(ts=1420983399, city=2995, lat=42.897686, lon=-87.853851, moving=3, location=2, time_of_day=2)),
    train(itemId=42869, context=context(ts=1420983404, city=2995, lat=42.897686, lon=-87.853851, moving=2, location=2, time_of_day=2)),
    train(itemId=42869, context=context(ts=1420983446, city=2995, lat=42.897686, lon=-87.853851, moving=2, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1420988865, city=2995, lat=42.897713, lon=-87.853928, moving=1, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1420988872, city=2995, lat=42.897713, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1420988881, city=2995, lat=42.897713, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=37219, context=context(ts=1420988889, city=2995, lat=42.897713, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1420988897, city=2995, lat=42.897713, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=30593, context=context(ts=1420989048, city=2995, lat=42.897705, lon=-87.853737, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420989343, city=2995, lat=42.897717, lon=-87.853882, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1420989963, city=2995, lat=42.89777, lon=-87.853928, moving=1, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1420989966, city=2995, lat=42.89777, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=37219, context=context(ts=1420989968, city=2995, lat=42.89777, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1420989971, city=2995, lat=42.89777, lon=-87.853928, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1420990013, city=2995, lat=42.897724, lon=-87.853836, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420990015, city=2995, lat=42.897724, lon=-87.853836, moving=2, location=2, time_of_day=2)),
    train(itemId=32835, context=context(ts=1420991155, city=2995, lat=42.897877, lon=-87.853844, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420991166, city=2995, lat=42.897877, lon=-87.853844, moving=2, location=2, time_of_day=2)),
    train(itemId=81629, context=context(ts=1420991251, city=2995, lat=42.897663, lon=-87.853806, moving=2, location=2, time_of_day=2)),
    train(itemId=88438, context=context(ts=1420991305, city=2995, lat=42.897663, lon=-87.853806, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420991652, city=2995, lat=42.897621, lon=-87.853767, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1420992103, city=2995, lat=42.897736, lon=-87.853806, moving=1, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1420992122, city=2995, lat=42.897568, lon=-87.853806, moving=2, location=2, time_of_day=3)),
    train(itemId=81629, context=context(ts=1420992134, city=2995, lat=42.897568, lon=-87.853806, moving=2, location=2, time_of_day=3)),
    train(itemId=91937, context=context(ts=1420992138, city=2995, lat=42.897568, lon=-87.853806, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1420996676, city=2995, lat=42.902145, lon=-87.864212, moving=1, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1420996683, city=2995, lat=42.902149, lon=-87.86425, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1420996689, city=2995, lat=42.902149, lon=-87.86425, moving=2, location=2, time_of_day=3)),
    train(itemId=77111, context=context(ts=1420996934, city=2995, lat=42.902149, lon=-87.86425, moving=2, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1420997729, city=2995, lat=42.897591, lon=-87.853859, moving=1, location=2, time_of_day=3)),
    train(itemId=77111, context=context(ts=1420997730, city=2995, lat=42.897591, lon=-87.853859, moving=2, location=2, time_of_day=3)),
    train(itemId=37219, context=context(ts=1420997730, city=2995, lat=42.897591, lon=-87.853859, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1420998972, city=2995, lat=42.897831, lon=-87.853882, moving=1, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1420999250, city=2995, lat=42.897675, lon=-87.85376, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1420999371, city=2995, lat=42.897755, lon=-87.85392, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1420999382, city=2995, lat=42.897755, lon=-87.85392, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421005738, city=2995, lat=42.897675, lon=-87.853874, moving=1, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421005739, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421005741, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421005744, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421005748, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421005751, city=2995, lat=42.897675, lon=-87.853874, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421007607, city=2995, lat=42.897865, lon=-87.853958, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421009728, city=2995, lat=42.897926, lon=-87.853996, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421009844, city=2995, lat=42.897743, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421009992, city=2995, lat=42.897743, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421010053, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421010064, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421010075, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421010202, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421010463, city=2995, lat=42.897678, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421010504, city=2995, lat=42.897892, lon=-87.854034, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421010517, city=2995, lat=42.897892, lon=-87.854034, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421010693, city=2995, lat=42.897816, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421010787, city=2995, lat=42.897701, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421010830, city=2995, lat=42.897701, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421010836, city=2995, lat=42.897701, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421010844, city=2995, lat=42.897701, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421011332, city=2995, lat=42.897617, lon=-87.853851, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421011520, city=2995, lat=42.897739, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421011638, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421011653, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421011655, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421011657, city=2995, lat=42.897739, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421011865, city=2995, lat=42.897606, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421011893, city=2995, lat=42.897606, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421012300, city=2995, lat=42.897705, lon=-87.853813, moving=1, location=3, time_of_day=4)),
    train(itemId=29030, context=context(ts=1421012413, city=2995, lat=42.897648, lon=-87.853859, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421012523, city=2995, lat=42.897648, lon=-87.853859, moving=2, location=3, time_of_day=4)),
    train(itemId=29030, context=context(ts=1421012541, city=2995, lat=42.897697, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421012559, city=2995, lat=42.897697, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421012579, city=2995, lat=42.897697, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421012598, city=2995, lat=42.897697, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421012611, city=2995, lat=42.897697, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421017863, city=2995, lat=42.897629, lon=-87.853935, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421019078, city=2995, lat=42.897591, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421019107, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421019136, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421019165, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421019255, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421019311, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421019361, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=8865, context=context(ts=1421019365, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=54178, context=context(ts=1421019372, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421019377, city=2995, lat=42.897591, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421019386, city=2995, lat=42.89777, lon=-87.853836, moving=3, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421019393, city=2995, lat=42.89772, lon=-87.853775, moving=3, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421019400, city=2995, lat=42.89772, lon=-87.853775, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421019411, city=2995, lat=42.89772, lon=-87.853775, moving=2, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421019435, city=2995, lat=42.89772, lon=-87.853775, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421019476, city=2995, lat=42.89772, lon=-87.853775, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421019801, city=2995, lat=42.897678, lon=-87.853859, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421021958, city=2995, lat=42.897747, lon=-87.853966, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421022071, city=2995, lat=42.897717, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421022177, city=2995, lat=42.897717, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421029532, city=2995, lat=42.897556, lon=-87.853844, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421029553, city=2995, lat=42.897556, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421029649, city=2995, lat=42.897961, lon=-87.854004, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421029863, city=2995, lat=42.897617, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421029874, city=2995, lat=42.897617, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=68278, context=context(ts=1421029982, city=2995, lat=42.89772, lon=-87.85379, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421030655, city=2995, lat=42.897717, lon=-87.853844, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421031041, city=2995, lat=42.897705, lon=-87.853905, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421031394, city=2995, lat=42.897629, lon=-87.853844, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421033394, city=2995, lat=42.897663, lon=-87.853836, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421034432, city=2995, lat=42.897602, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421034576, city=2995, lat=42.897617, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421034903, city=2995, lat=42.897717, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421036344, city=2995, lat=42.89756, lon=-87.853813, moving=1, location=3, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421037072, city=2995, lat=42.897671, lon=-87.853806, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421037079, city=2995, lat=42.897781, lon=-87.853867, moving=3, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421037679, city=2995, lat=42.89764, lon=-87.853767, moving=1, location=3, time_of_day=1)),
    train(itemId=85325, context=context(ts=1421038408, city=2995, lat=42.897694, lon=-87.853851, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421038475, city=2995, lat=42.897694, lon=-87.853851, moving=2, location=3, time_of_day=1)),
    train(itemId=32835, context=context(ts=1421038547, city=2995, lat=42.897694, lon=-87.853851, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421038569, city=2995, lat=42.897694, lon=-87.853851, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421038781, city=2995, lat=42.897736, lon=-87.853874, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421039142, city=2995, lat=42.897823, lon=-87.853882, moving=1, location=1, time_of_day=1)),
    train(itemId=32835, context=context(ts=1421039243, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=1, time_of_day=1)),
    train(itemId=32835, context=context(ts=1421039254, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421039273, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421039491, city=2995, lat=42.897728, lon=-87.853836, moving=2, location=1, time_of_day=1)),
    train(itemId=81629, context=context(ts=1421039675, city=2995, lat=42.89769, lon=-87.853897, moving=2, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421040436, city=2995, lat=42.897736, lon=-87.853844, moving=1, location=1, time_of_day=1)),
    train(itemId=32835, context=context(ts=1421040493, city=2995, lat=42.897785, lon=-87.853951, moving=2, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421041175, city=2995, lat=42.897697, lon=-87.853867, moving=1, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421041199, city=2995, lat=42.897644, lon=-87.853783, moving=2, location=1, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421066403, city=2995, lat=42.897602, lon=-87.853897, moving=1, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421066554, city=2995, lat=42.897602, lon=-87.853897, moving=2, location=1, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421068999, city=2995, lat=42.905598, lon=-87.881607, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421069005, city=999, lat=42.934738, lon=-87.874855, moving=4, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421069069, city=999, lat=42.934738, lon=-87.874855, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421069259, city=713, lat=42.953796, lon=-87.908638, moving=4, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421072600, city=2995, lat=42.902149, lon=-87.864197, moving=1, location=2, time_of_day=2)),
    train(itemId=32835, context=context(ts=1421073121, city=2995, lat=42.90213, lon=-87.864128, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421073816, city=2995, lat=42.897633, lon=-87.853798, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421074440, city=2995, lat=42.897636, lon=-87.853851, moving=1, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421076367, city=2995, lat=42.897839, lon=-87.853905, moving=1, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421077634, city=713, lat=43.006313, lon=-87.91864, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421082163, city=713, lat=43.017086, lon=-87.919334, moving=1, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421082194, city=713, lat=43.017086, lon=-87.919334, moving=2, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421082360, city=713, lat=43.017086, lon=-87.919334, moving=2, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421082363, city=713, lat=43.010754, lon=-87.918716, moving=4, location=2, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421082364, city=713, lat=43.010754, lon=-87.918716, moving=2, location=2, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421082366, city=713, lat=43.010754, lon=-87.918716, moving=2, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421083528, city=713, lat=42.960175, lon=-87.900887, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421084454, city=2995, lat=42.897602, lon=-87.853874, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421084573, city=2995, lat=42.897602, lon=-87.853874, moving=2, location=2, time_of_day=3)),
    train(itemId=55396, context=context(ts=1421084594, city=2995, lat=42.897617, lon=-87.853851, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421084616, city=2995, lat=42.897617, lon=-87.853851, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421084631, city=2995, lat=42.897617, lon=-87.853851, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421085302, city=2995, lat=42.897648, lon=-87.853828, moving=1, location=2, time_of_day=3)),
    train(itemId=81629, context=context(ts=1421085494, city=2995, lat=42.897667, lon=-87.853821, moving=2, location=2, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421085591, city=2995, lat=42.897667, lon=-87.853821, moving=2, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421085633, city=2995, lat=42.897667, lon=-87.853821, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421086696, city=2995, lat=42.897606, lon=-87.853836, moving=1, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421090760, city=2995, lat=42.897697, lon=-87.85379, moving=1, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421090767, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421090773, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421090778, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421090837, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421090843, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421090858, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421090873, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421090888, city=2995, lat=42.897697, lon=-87.85379, moving=2, location=3, time_of_day=3)),
    train(itemId=68278, context=context(ts=1421090963, city=2995, lat=42.897709, lon=-87.853882, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421091154, city=2995, lat=42.897694, lon=-87.85392, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421091897, city=2995, lat=42.89756, lon=-87.853813, moving=1, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421093249, city=2995, lat=42.89764, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421093407, city=2995, lat=42.897686, lon=-87.853859, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421095256, city=2995, lat=42.897766, lon=-87.853859, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421095451, city=2995, lat=42.897709, lon=-87.85379, moving=2, location=3, time_of_day=4)),
    train(itemId=88438, context=context(ts=1421095721, city=2995, lat=42.897678, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421096019, city=2995, lat=42.897629, lon=-87.853874, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421096200, city=2995, lat=42.897629, lon=-87.853874, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421097786, city=2995, lat=42.897846, lon=-87.853889, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421100109, city=2995, lat=42.897675, lon=-87.853874, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421100480, city=2995, lat=42.897617, lon=-87.853897, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421100491, city=2995, lat=42.897617, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421104357, city=2995, lat=42.897728, lon=-87.853836, moving=1, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421104435, city=2995, lat=42.897728, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421104438, city=2995, lat=42.897728, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421104441, city=2995, lat=42.897728, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421104498, city=2995, lat=42.897728, lon=-87.853836, moving=2, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421105373, city=2995, lat=42.897636, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421110512, city=2995, lat=42.89793, lon=-87.853958, moving=1, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421111328, city=2995, lat=42.897625, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421111395, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111448, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421111475, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111481, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421111484, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111490, city=2995, lat=42.897987, lon=-87.85405, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111706, city=2995, lat=42.897682, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111716, city=2995, lat=42.897682, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421111733, city=2995, lat=42.897682, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421116085, city=2995, lat=42.897594, lon=-87.853859, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421120482, city=2995, lat=42.89756, lon=-87.853821, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421121341, city=2995, lat=42.89761, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=31598, context=context(ts=1421121509, city=2995, lat=42.897621, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421121520, city=2995, lat=42.897621, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421121780, city=2995, lat=42.897621, lon=-87.853882, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421121963, city=2995, lat=42.897629, lon=-87.853859, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421123192, city=2995, lat=42.897575, lon=-87.853867, moving=1, location=3, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421153317, city=2995, lat=42.897633, lon=-87.853828, moving=1, location=1, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421153335, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421153348, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421153417, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421153420, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=37219, context=context(ts=1421153423, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=77111, context=context(ts=1421153425, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421153471, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421153497, city=2995, lat=42.897572, lon=-87.853813, moving=2, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421153678, city=2995, lat=42.89764, lon=-87.853897, moving=2, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421153708, city=2995, lat=42.89764, lon=-87.853897, moving=2, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421156722, city=999, lat=42.934479, lon=-87.875702, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421156733, city=999, lat=42.934479, lon=-87.875702, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421158003, city=2995, lat=42.897652, lon=-87.853828, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421158059, city=2995, lat=42.897652, lon=-87.853828, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421158170, city=2995, lat=42.897659, lon=-87.853889, moving=2, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421158488, city=2995, lat=42.897633, lon=-87.853889, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421158497, city=2995, lat=42.897633, lon=-87.853889, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421158541, city=2995, lat=42.897633, lon=-87.853889, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421158837, city=2995, lat=42.897678, lon=-87.853859, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421158853, city=2995, lat=42.897614, lon=-87.853851, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421159256, city=2995, lat=42.897614, lon=-87.85379, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421159759, city=2995, lat=42.897663, lon=-87.853745, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421159765, city=2995, lat=42.897663, lon=-87.853745, moving=2, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421160334, city=2995, lat=42.897793, lon=-87.853775, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421160488, city=2995, lat=42.897793, lon=-87.853775, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421161048, city=2995, lat=42.89769, lon=-87.853859, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421161226, city=2995, lat=42.897617, lon=-87.853851, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421161561, city=2995, lat=42.897591, lon=-87.853851, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421162501, city=2995, lat=42.897827, lon=-87.853828, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421162926, city=2995, lat=42.897724, lon=-87.853867, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421164695, city=2995, lat=42.897594, lon=-87.853806, moving=1, location=2, time_of_day=2)),
    train(itemId=42869, context=context(ts=1421165530, city=999, lat=42.934479, lon=-87.875702, moving=1, location=2, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421165541, city=999, lat=42.934479, lon=-87.875702, moving=2, location=2, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421166531, city=713, lat=43.040489, lon=-87.912598, moving=1, location=2, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421166538, city=713, lat=43.040489, lon=-87.912598, moving=2, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421166957, city=713, lat=43.039124, lon=-87.909126, moving=1, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421166960, city=713, lat=43.039337, lon=-87.909439, moving=4, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421166964, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=96547, context=context(ts=1421166980, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421166983, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421166990, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421167036, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421167080, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421167114, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421167130, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421167191, city=713, lat=43.039337, lon=-87.909439, moving=2, location=2, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421167199, city=713, lat=43.038857, lon=-87.90963, moving=4, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421167206, city=713, lat=43.038857, lon=-87.90963, moving=2, location=2, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421167213, city=713, lat=43.038857, lon=-87.90963, moving=2, location=2, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421167220, city=713, lat=43.038857, lon=-87.90963, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421167246, city=713, lat=43.038857, lon=-87.90963, moving=2, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421168283, city=713, lat=43.038666, lon=-87.909264, moving=1, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421168581, city=713, lat=43.038666, lon=-87.909264, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421171775, city=713, lat=43.038776, lon=-87.909691, moving=1, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421171783, city=713, lat=43.038776, lon=-87.909691, moving=2, location=2, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421172293, city=713, lat=43.03788, lon=-87.909492, moving=1, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421176050, city=713, lat=43.038467, lon=-87.909355, moving=1, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421176344, city=713, lat=43.037651, lon=-87.909576, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421176348, city=713, lat=43.038719, lon=-87.909615, moving=4, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421176362, city=713, lat=43.038719, lon=-87.909615, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421176377, city=713, lat=43.038719, lon=-87.909615, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421179319, city=713, lat=43.039001, lon=-87.910103, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421179324, city=713, lat=43.039001, lon=-87.910103, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421179333, city=713, lat=43.039001, lon=-87.910103, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421179576, city=713, lat=43.039051, lon=-87.910378, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421179603, city=713, lat=43.039051, lon=-87.910378, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421179629, city=713, lat=43.039051, lon=-87.910378, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421179656, city=713, lat=43.039051, lon=-87.910378, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421180247, city=713, lat=43.038517, lon=-87.913452, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421180654, city=713, lat=43.038517, lon=-87.913452, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421180868, city=713, lat=43.038517, lon=-87.913452, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421181129, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421181161, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181166, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421181169, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181172, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421181229, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181273, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421181331, city=713, lat=43.038803, lon=-87.91317, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181411, city=713, lat=43.038399, lon=-87.913475, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181499, city=713, lat=43.038399, lon=-87.913475, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181581, city=713, lat=43.038399, lon=-87.913475, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181637, city=713, lat=43.038399, lon=-87.913475, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421181644, city=713, lat=43.038635, lon=-87.9133, moving=4, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421181665, city=713, lat=43.038635, lon=-87.9133, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421186896, city=713, lat=43.038235, lon=-87.909416, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421187180, city=713, lat=43.038403, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421187408, city=713, lat=43.03886, lon=-87.909866, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421187618, city=713, lat=43.03886, lon=-87.909866, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421187620, city=713, lat=43.038822, lon=-87.909218, moving=4, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421187845, city=713, lat=43.038822, lon=-87.909218, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421190759, city=2995, lat=42.897774, lon=-87.853943, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421190786, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421190822, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421190929, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421190934, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191078, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=59659, context=context(ts=1421191275, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191280, city=2995, lat=42.897774, lon=-87.853943, moving=2, location=3, time_of_day=4)),
    train(itemId=59659, context=context(ts=1421191344, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191350, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191426, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=32835, context=context(ts=1421191487, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191499, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191553, city=2995, lat=42.897747, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421191621, city=2995, lat=42.897694, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=2241, context=context(ts=1421191642, city=2995, lat=42.897694, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=2241, context=context(ts=1421191668, city=2995, lat=42.897694, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=2241, context=context(ts=1421191761, city=2995, lat=42.897694, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421192098, city=2995, lat=42.897808, lon=-87.853981, moving=1, location=3, time_of_day=4)),
    train(itemId=2241, context=context(ts=1421192140, city=2995, lat=42.897808, lon=-87.853981, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421192596, city=2995, lat=42.897636, lon=-87.853813, moving=1, location=3, time_of_day=4)),
    train(itemId=2241, context=context(ts=1421192712, city=2995, lat=42.897659, lon=-87.853889, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421193692, city=2995, lat=42.898106, lon=-87.853065, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421193745, city=2995, lat=42.911945, lon=-87.860748, moving=4, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421193783, city=2995, lat=42.911945, lon=-87.860748, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421193998, city=999, lat=42.933422, lon=-87.860054, moving=4, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421194096, city=999, lat=42.933422, lon=-87.860054, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421194143, city=2995, lat=42.929363, lon=-87.861397, moving=4, location=3, time_of_day=4)),
    train(itemId=43924, context=context(ts=1421194146, city=2995, lat=42.929363, lon=-87.861397, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421195529, city=2995, lat=42.897835, lon=-87.85392, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421196323, city=2995, lat=42.897533, lon=-87.85376, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421196603, city=2995, lat=42.897537, lon=-87.853798, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421198022, city=2995, lat=42.897785, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=68168, context=context(ts=1421200396, city=2995, lat=42.897892, lon=-87.853935, moving=1, location=3, time_of_day=4)),
    train(itemId=91937, context=context(ts=1421200468, city=2995, lat=42.897614, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=67448, context=context(ts=1421200469, city=2995, lat=42.897614, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421205076, city=2995, lat=42.902824, lon=-87.863411, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421205774, city=2995, lat=42.897705, lon=-87.853821, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421207798, city=2995, lat=42.89772, lon=-87.853897, moving=1, location=3, time_of_day=4)),
    train(itemId=88438, context=context(ts=1421207810, city=2995, lat=42.89772, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421208137, city=2995, lat=42.897614, lon=-87.853844, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421208307, city=2995, lat=42.89764, lon=-87.853844, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421209173, city=2995, lat=42.897636, lon=-87.853882, moving=1, location=3, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421209726, city=2995, lat=42.897606, lon=-87.853836, moving=1, location=3, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421239653, city=2995, lat=42.897617, lon=-87.853783, moving=1, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421239738, city=2995, lat=42.897617, lon=-87.853783, moving=2, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421242667, city=2995, lat=42.89785, lon=-87.853722, moving=1, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421243714, city=999, lat=42.934509, lon=-87.875702, moving=1, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421243728, city=999, lat=42.934509, lon=-87.875702, moving=2, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421243902, city=999, lat=42.94838, lon=-87.865517, moving=4, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421244021, city=999, lat=42.954704, lon=-87.870415, moving=4, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421244231, city=713, lat=42.959175, lon=-87.901237, moving=4, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421244978, city=713, lat=43.037434, lon=-87.909264, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421245324, city=713, lat=43.043709, lon=-87.915779, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421251074, city=713, lat=43.038391, lon=-87.90995, moving=1, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1421251121, city=713, lat=43.038391, lon=-87.90995, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421251132, city=713, lat=43.038391, lon=-87.90995, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421251378, city=713, lat=43.039265, lon=-87.909691, moving=2, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421251491, city=713, lat=43.038742, lon=-87.909706, moving=2, location=2, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421251505, city=713, lat=43.038742, lon=-87.909706, moving=2, location=2, time_of_day=3)),
    train(itemId=81629, context=context(ts=1421251529, city=713, lat=43.038742, lon=-87.909706, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421253651, city=713, lat=43.038265, lon=-87.909744, moving=1, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421258150, city=713, lat=43.038239, lon=-87.909317, moving=1, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421258158, city=713, lat=43.038239, lon=-87.909317, moving=2, location=2, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421258167, city=713, lat=43.038239, lon=-87.909317, moving=2, location=2, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421258400, city=713, lat=43.038876, lon=-87.90976, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421258451, city=713, lat=43.038876, lon=-87.90976, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421258453, city=713, lat=43.038876, lon=-87.90976, moving=2, location=3, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421258454, city=713, lat=43.038876, lon=-87.90976, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421258455, city=713, lat=43.038876, lon=-87.90976, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421258985, city=713, lat=43.03838, lon=-87.914619, moving=1, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421259861, city=713, lat=43.038395, lon=-87.914642, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421259894, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421259898, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421259915, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421260020, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421260199, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421260204, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421260214, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421260500, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421260671, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421260673, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421260674, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421260675, city=713, lat=43.038395, lon=-87.914642, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421267169, city=713, lat=43.038059, lon=-87.90995, moving=1, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421267249, city=713, lat=43.038059, lon=-87.90995, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421267251, city=713, lat=43.038059, lon=-87.90995, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421267252, city=713, lat=43.038059, lon=-87.90995, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421267254, city=713, lat=43.038059, lon=-87.90995, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421267277, city=713, lat=43.038059, lon=-87.90995, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421267780, city=713, lat=43.038437, lon=-87.909424, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421267929, city=713, lat=43.038399, lon=-87.909714, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421270272, city=713, lat=43.038776, lon=-87.90905, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421274332, city=713, lat=43.03825, lon=-87.910339, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421276484, city=713, lat=43.038307, lon=-87.909576, moving=1, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421277187, city=713, lat=43.038933, lon=-87.90921, moving=1, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421277190, city=713, lat=43.037392, lon=-87.904518, moving=4, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421277192, city=713, lat=43.037392, lon=-87.904518, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421277194, city=713, lat=43.037392, lon=-87.904518, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421278979, city=2995, lat=42.897617, lon=-87.853821, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421283600, city=2995, lat=42.897614, lon=-87.85379, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421283612, city=2995, lat=42.897644, lon=-87.85376, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421283622, city=2995, lat=42.897644, lon=-87.85376, moving=2, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421283713, city=2995, lat=42.897644, lon=-87.85376, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421283731, city=2995, lat=42.897644, lon=-87.85376, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421283779, city=2995, lat=42.897644, lon=-87.85376, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421283822, city=2995, lat=42.897549, lon=-87.853714, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421284263, city=2995, lat=42.897575, lon=-87.853638, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421284475, city=2995, lat=42.897758, lon=-87.853821, moving=2, location=3, time_of_day=4)),
    train(itemId=91937, context=context(ts=1421284939, city=2995, lat=42.897629, lon=-87.853737, moving=1, location=3, time_of_day=4)),
    train(itemId=91937, context=context(ts=1421285088, city=2995, lat=42.897839, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421285249, city=2995, lat=42.897678, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421285270, city=2995, lat=42.897678, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421285340, city=2995, lat=42.897678, lon=-87.853828, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421285984, city=2995, lat=42.897579, lon=-87.853752, moving=1, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421286047, city=2995, lat=42.897579, lon=-87.853752, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421286067, city=2995, lat=42.897579, lon=-87.853752, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421286114, city=2995, lat=42.89753, lon=-87.853752, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421291620, city=2995, lat=42.902802, lon=-87.863403, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421292575, city=2995, lat=42.897621, lon=-87.853783, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421292726, city=2995, lat=42.897743, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421293071, city=2995, lat=42.897667, lon=-87.853775, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421293683, city=2995, lat=42.897812, lon=-87.853851, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421293773, city=2995, lat=42.897774, lon=-87.853867, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421293987, city=2995, lat=42.897739, lon=-87.853874, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421294094, city=2995, lat=42.897739, lon=-87.853874, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421294431, city=2995, lat=42.897808, lon=-87.853844, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421294672, city=2995, lat=42.897808, lon=-87.853844, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421294801, city=2995, lat=42.897663, lon=-87.853828, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421294891, city=2995, lat=42.897663, lon=-87.853828, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421295174, city=2995, lat=42.8978, lon=-87.853844, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421295995, city=2995, lat=42.897667, lon=-87.853859, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421296533, city=2995, lat=42.897774, lon=-87.853729, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421296679, city=2995, lat=42.897774, lon=-87.853729, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421297128, city=2995, lat=42.897751, lon=-87.853851, moving=1, location=3, time_of_day=1)),
    train(itemId=42869, context=context(ts=1421297227, city=2995, lat=42.897705, lon=-87.853828, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421297229, city=2995, lat=42.897705, lon=-87.853828, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421297864, city=2995, lat=42.897591, lon=-87.853737, moving=1, location=3, time_of_day=1)),
    train(itemId=14861, context=context(ts=1421326215, city=2995, lat=42.897594, lon=-87.853836, moving=1, location=1, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421326264, city=2995, lat=42.897594, lon=-87.853836, moving=2, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421327146, city=2995, lat=42.89785, lon=-87.853775, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421327468, city=2995, lat=42.897636, lon=-87.853828, moving=1, location=2, time_of_day=2)),
    train(itemId=54389, context=context(ts=1421328957, city=2995, lat=42.897816, lon=-87.853897, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421328960, city=2995, lat=42.897743, lon=-87.853905, moving=4, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421330538, city=713, lat=42.932289, lon=-87.933228, moving=1, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421330942, city=713, lat=43.020012, lon=-87.898506, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421331695, city=713, lat=43.038551, lon=-87.909286, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421339565, city=713, lat=43.038986, lon=-87.9104, moving=1, location=2, time_of_day=3)),
    train(itemId=81629, context=context(ts=1421339584, city=713, lat=43.038986, lon=-87.9104, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421340270, city=713, lat=43.038445, lon=-87.909843, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421340278, city=713, lat=43.038445, lon=-87.909843, moving=2, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421342217, city=713, lat=43.038837, lon=-87.91124, moving=1, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421343533, city=713, lat=43.038555, lon=-87.911697, moving=1, location=2, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421343563, city=713, lat=43.038555, lon=-87.911697, moving=2, location=2, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421344227, city=713, lat=43.038727, lon=-87.911819, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421344230, city=713, lat=43.038727, lon=-87.911819, moving=2, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421344638, city=713, lat=43.038776, lon=-87.910614, moving=1, location=2, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421344928, city=713, lat=43.038799, lon=-87.910187, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421345126, city=713, lat=43.038799, lon=-87.910187, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421345481, city=713, lat=43.0397, lon=-87.910423, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421345529, city=713, lat=43.0397, lon=-87.910423, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421346160, city=713, lat=43.038723, lon=-87.912231, moving=1, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421346175, city=713, lat=43.038723, lon=-87.912231, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421346369, city=713, lat=43.038536, lon=-87.911896, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421346380, city=713, lat=43.038536, lon=-87.911896, moving=2, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421346417, city=713, lat=43.038536, lon=-87.911896, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421346423, city=713, lat=43.038536, lon=-87.911896, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421347262, city=713, lat=43.038399, lon=-87.914581, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421347611, city=713, lat=43.038399, lon=-87.914581, moving=1, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421347828, city=713, lat=43.038486, lon=-87.912025, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421347842, city=713, lat=43.038486, lon=-87.912025, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421348260, city=713, lat=43.038383, lon=-87.909584, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421348394, city=713, lat=43.038383, lon=-87.909584, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421348762, city=713, lat=43.038776, lon=-87.911087, moving=1, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421355233, city=713, lat=43.038456, lon=-87.909531, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421355240, city=713, lat=43.038456, lon=-87.909531, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421355245, city=713, lat=43.038456, lon=-87.909531, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421355287, city=713, lat=43.038456, lon=-87.909531, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421355394, city=713, lat=43.038456, lon=-87.909531, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421355947, city=713, lat=43.039024, lon=-87.910149, moving=1, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421355949, city=713, lat=43.038948, lon=-87.909843, moving=4, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421355980, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421355985, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421355988, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421356025, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421356121, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421356125, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421356128, city=713, lat=43.038948, lon=-87.909843, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421356177, city=713, lat=43.037937, lon=-87.909492, moving=3, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421356179, city=713, lat=43.037937, lon=-87.909492, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421356187, city=713, lat=43.037937, lon=-87.909492, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421356234, city=713, lat=43.037937, lon=-87.909492, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421356342, city=713, lat=43.037937, lon=-87.909492, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421360730, city=713, lat=43.038624, lon=-87.909645, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421363723, city=2995, lat=42.897507, lon=-87.853729, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421363727, city=2995, lat=42.897507, lon=-87.853729, moving=2, location=3, time_of_day=4)),
    train(itemId=55396, context=context(ts=1421363731, city=2995, lat=42.897507, lon=-87.853729, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421363736, city=2995, lat=42.897507, lon=-87.853729, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421368139, city=2995, lat=42.897659, lon=-87.85379, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421368246, city=2995, lat=42.897739, lon=-87.853897, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421369042, city=2995, lat=42.897663, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421371355, city=2995, lat=42.897762, lon=-87.853905, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421371933, city=2995, lat=42.897533, lon=-87.85376, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421375911, city=2995, lat=42.897564, lon=-87.853836, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421376306, city=2995, lat=42.897602, lon=-87.853851, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421376464, city=2995, lat=42.897602, lon=-87.853851, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421376563, city=2995, lat=42.897697, lon=-87.853821, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421376634, city=2995, lat=42.897697, lon=-87.853821, moving=2, location=3, time_of_day=4)),
    train(itemId=79463, context=context(ts=1421377968, city=2995, lat=42.89769, lon=-87.853828, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421378713, city=2995, lat=42.897602, lon=-87.853828, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421378850, city=2995, lat=42.897755, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421378919, city=2995, lat=42.897755, lon=-87.853882, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421379210, city=2995, lat=42.897728, lon=-87.853813, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421380142, city=2995, lat=42.897747, lon=-87.85392, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421380446, city=2995, lat=42.897621, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421381020, city=2995, lat=42.897629, lon=-87.853722, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421381261, city=2995, lat=42.897629, lon=-87.853722, moving=2, location=3, time_of_day=1)),
    train(itemId=88438, context=context(ts=1421381407, city=2995, lat=42.897636, lon=-87.853806, moving=2, location=3, time_of_day=1)),
    train(itemId=29345, context=context(ts=1421381495, city=2995, lat=42.897636, lon=-87.853806, moving=2, location=3, time_of_day=1)),
    train(itemId=29345, context=context(ts=1421381582, city=2995, lat=42.897655, lon=-87.853851, moving=2, location=3, time_of_day=1)),
    train(itemId=88438, context=context(ts=1421381606, city=2995, lat=42.897655, lon=-87.853851, moving=2, location=3, time_of_day=1)),
    train(itemId=29345, context=context(ts=1421381676, city=2995, lat=42.897793, lon=-87.853828, moving=2, location=3, time_of_day=1)),
    train(itemId=88438, context=context(ts=1421382126, city=2995, lat=42.897587, lon=-87.853828, moving=1, location=3, time_of_day=1)),
    train(itemId=81629, context=context(ts=1421382974, city=2995, lat=42.897552, lon=-87.853798, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421411501, city=2995, lat=42.897545, lon=-87.853806, moving=1, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421412978, city=2995, lat=42.897598, lon=-87.85379, moving=1, location=1, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421413325, city=2995, lat=42.897884, lon=-87.853844, moving=1, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421414840, city=713, lat=42.96571, lon=-87.903427, moving=1, location=2, time_of_day=2))],
   [train(itemId=81109, context=context(ts=1421415086, city=713, lat=43.005791, lon=-87.900009, moving=4, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421416048, city=713, lat=43.058319, lon=-87.914116, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421416745, city=713, lat=43.039608, lon=-87.909309, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421416878, city=713, lat=43.039608, lon=-87.909309, moving=2, location=2, time_of_day=2)),
    train(itemId=81109, context=context(ts=1421416890, city=713, lat=43.039608, lon=-87.909309, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421416901, city=713, lat=43.039608, lon=-87.909309, moving=2, location=2, time_of_day=2)),
    train(itemId=37219, context=context(ts=1421416912, city=713, lat=43.039608, lon=-87.909309, moving=2, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1421416923, city=713, lat=43.038742, lon=-87.910683, moving=4, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421416973, city=713, lat=43.038742, lon=-87.910683, moving=2, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421416986, city=713, lat=43.038742, lon=-87.910683, moving=2, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421420652, city=713, lat=43.038811, lon=-87.909668, moving=1, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1421426169, city=713, lat=43.037529, lon=-87.909523, moving=1, location=2, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421432348, city=713, lat=43.039024, lon=-87.910149, moving=1, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421432759, city=713, lat=43.038723, lon=-87.912514, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421432946, city=713, lat=43.038357, lon=-87.91468, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421433362, city=713, lat=43.038357, lon=-87.91468, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421433800, city=713, lat=43.038357, lon=-87.91468, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421434509, city=713, lat=43.038357, lon=-87.91468, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421434679, city=713, lat=43.038357, lon=-87.91468, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421434801, city=713, lat=43.038425, lon=-87.9123, moving=3, location=3, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421435052, city=713, lat=43.039051, lon=-87.910385, moving=2, location=3, time_of_day=3)),
    train(itemId=30593, context=context(ts=1421435081, city=713, lat=43.039051, lon=-87.910385, moving=2, location=3, time_of_day=3)),
    train(itemId=29345, context=context(ts=1421435092, city=713, lat=43.038147, lon=-87.90963, moving=4, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421435100, city=713, lat=43.038147, lon=-87.90963, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421435342, city=713, lat=43.038147, lon=-87.90963, moving=2, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421436007, city=713, lat=43.038116, lon=-87.909592, moving=1, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421437510, city=713, lat=43.037964, lon=-87.909691, moving=1, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421440487, city=713, lat=43.037994, lon=-87.909485, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421440495, city=713, lat=43.038601, lon=-87.909416, moving=4, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421440501, city=713, lat=43.038601, lon=-87.909416, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421442127, city=713, lat=43.038185, lon=-87.909576, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421443785, city=713, lat=43.038147, lon=-87.909508, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421448211, city=713, lat=43.038143, lon=-87.909615, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421448806, city=713, lat=43.038696, lon=-87.909904, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421448995, city=713, lat=43.03854, lon=-87.909698, moving=2, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421449280, city=713, lat=43.03537, lon=-87.906876, moving=3, location=3, time_of_day=4)),
    train(itemId=79614, context=context(ts=1421449282, city=713, lat=43.03537, lon=-87.906876, moving=2, location=3, time_of_day=4)),
    train(itemId=37219, context=context(ts=1421449283, city=713, lat=43.03537, lon=-87.906876, moving=2, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421449285, city=713, lat=43.03537, lon=-87.906876, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421449382, city=713, lat=43.03537, lon=-87.906876, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421455547, city=2995, lat=42.902782, lon=-87.863365, moving=1, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421455575, city=2995, lat=42.902782, lon=-87.863365, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421455823, city=2995, lat=42.902245, lon=-87.864265, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421457076, city=2995, lat=42.897663, lon=-87.853752, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421457663, city=2995, lat=42.897758, lon=-87.853867, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421458373, city=2995, lat=42.897995, lon=-87.854088, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421458481, city=2995, lat=42.897995, lon=-87.854088, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421458648, city=2995, lat=42.897995, lon=-87.854088, moving=2, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421459202, city=2995, lat=42.897724, lon=-87.853813, moving=1, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421459264, city=2995, lat=42.897724, lon=-87.853813, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421459998, city=2995, lat=42.897682, lon=-87.853783, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421460002, city=2995, lat=42.897552, lon=-87.853775, moving=4, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421460090, city=2995, lat=42.897751, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=88438, context=context(ts=1421460106, city=2995, lat=42.897751, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421460279, city=2995, lat=42.897751, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=14861, context=context(ts=1421460468, city=2995, lat=42.897678, lon=-87.853851, moving=2, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421460499, city=2995, lat=42.897678, lon=-87.853851, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421460626, city=2995, lat=42.897678, lon=-87.853851, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421463991, city=2995, lat=42.897694, lon=-87.853798, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421464208, city=2995, lat=42.897621, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421464341, city=2995, lat=42.897621, lon=-87.853806, moving=2, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421464349, city=2995, lat=42.897671, lon=-87.853783, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421464352, city=2995, lat=42.897671, lon=-87.853783, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421464571, city=2995, lat=42.897633, lon=-87.853752, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421464605, city=2995, lat=42.897633, lon=-87.853752, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421464896, city=2995, lat=42.897724, lon=-87.85379, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421465401, city=2995, lat=42.897629, lon=-87.853844, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421465427, city=2995, lat=42.897629, lon=-87.853844, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421465702, city=2995, lat=42.897633, lon=-87.853813, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421465728, city=2995, lat=42.897633, lon=-87.853813, moving=2, location=3, time_of_day=4)),
    train(itemId=17592, context=context(ts=1421466726, city=2995, lat=42.897591, lon=-87.853859, moving=1, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421467499, city=2995, lat=42.89761, lon=-87.853798, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421467576, city=2995, lat=42.89761, lon=-87.853798, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421467642, city=2995, lat=42.89761, lon=-87.853798, moving=2, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421467708, city=2995, lat=42.89761, lon=-87.853798, moving=2, location=3, time_of_day=1)),
    train(itemId=17592, context=context(ts=1421468041, city=2995, lat=42.897602, lon=-87.853798, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421470037, city=2995, lat=42.897663, lon=-87.853821, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421471173, city=2995, lat=42.897739, lon=-87.853867, moving=1, location=1, time_of_day=1)),
    train(itemId=17592, context=context(ts=1421472955, city=2995, lat=42.897598, lon=-87.853821, moving=1, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421473999, city=2995, lat=42.897591, lon=-87.85379, moving=1, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421474396, city=2995, lat=42.897621, lon=-87.85379, moving=1, location=1, time_of_day=1)),
    train(itemId=42869, context=context(ts=1421503297, city=2995, lat=42.8979, lon=-87.853775, moving=1, location=2, time_of_day=2)),
    train(itemId=44053, context=context(ts=1421503310, city=2995, lat=42.8979, lon=-87.853775, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421503558, city=2995, lat=42.898178, lon=-87.85495, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421503559, city=2995, lat=42.902794, lon=-87.863396, moving=4, location=2, time_of_day=2)),
    train(itemId=37219, context=context(ts=1421503561, city=2995, lat=42.902794, lon=-87.863396, moving=2, location=2, time_of_day=2)),
    train(itemId=77111, context=context(ts=1421503562, city=2995, lat=42.902794, lon=-87.863396, moving=2, location=2, time_of_day=2)),
    train(itemId=79614, context=context(ts=1421503895, city=2995, lat=42.902794, lon=-87.863396, moving=1, location=2, time_of_day=2)),
    train(itemId=29345, context=context(ts=1421504770, city=2995, lat=42.897606, lon=-87.85379, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421506519, city=2995, lat=42.897556, lon=-87.853828, moving=1, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421506530, city=2995, lat=42.897556, lon=-87.853828, moving=2, location=2, time_of_day=2)),
    train(itemId=81629, context=context(ts=1421506969, city=2995, lat=42.897629, lon=-87.853752, moving=1, location=2, time_of_day=2)),
    train(itemId=79463, context=context(ts=1421507337, city=2995, lat=42.897644, lon=-87.85379, moving=1, location=2, time_of_day=2)),
    train(itemId=81629, context=context(ts=1421507347, city=2995, lat=42.897743, lon=-87.853806, moving=3, location=2, time_of_day=2)),
    train(itemId=30593, context=context(ts=1421507551, city=2995, lat=42.897743, lon=-87.853806, moving=2, location=2, time_of_day=2)),
    train(itemId=94874, context=context(ts=1421509780, city=2995, lat=42.897583, lon=-87.85379, moving=1, location=2, time_of_day=2)),
    train(itemId=14861, context=context(ts=1421518650, city=9149, lat=42.897865, lon=-87.915138, moving=1, location=3, time_of_day=3)),
    train(itemId=79463, context=context(ts=1421518658, city=9149, lat=42.897865, lon=-87.915138, moving=2, location=3, time_of_day=3)),
    train(itemId=85325, context=context(ts=1421518769, city=9149, lat=42.897865, lon=-87.915138, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421520437, city=2995, lat=42.897877, lon=-87.853935, moving=1, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421520442, city=2995, lat=42.897526, lon=-87.853737, moving=4, location=3, time_of_day=3)),
    train(itemId=79614, context=context(ts=1421520446, city=2995, lat=42.897526, lon=-87.853737, moving=2, location=3, time_of_day=3)),
    train(itemId=37219, context=context(ts=1421520450, city=2995, lat=42.897526, lon=-87.853737, moving=2, location=3, time_of_day=3)),
    train(itemId=77111, context=context(ts=1421520453, city=2995, lat=42.897526, lon=-87.853737, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421522196, city=2995, lat=42.897579, lon=-87.853836, moving=1, location=3, time_of_day=3)),
    train(itemId=94874, context=context(ts=1421522203, city=2995, lat=42.897579, lon=-87.853836, moving=2, location=3, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421524758, city=2995, lat=42.898571, lon=-87.85199, moving=1, location=3, time_of_day=3)),
    train(itemId=81109, context=context(ts=1421524789, city=2995, lat=42.898571, lon=-87.85199, moving=2, location=3, time_of_day=3)),
    train(itemId=14861, context=context(ts=1421527375, city=9110, lat=42.523922, lon=-87.954636, moving=1, location=3, time_of_day=4)),
    train(itemId=30593, context=context(ts=1421529372, city=4853, lat=42.518532, lon=-87.948402, moving=1, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421531376, city=4853, lat=42.517887, lon=-87.947517, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421531400, city=4853, lat=42.517887, lon=-87.947517, moving=2, location=3, time_of_day=4)),
    train(itemId=79463, context=context(ts=1421532231, city=4853, lat=42.516857, lon=-87.949348, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421532906, city=4853, lat=42.516888, lon=-87.94928, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421534352, city=4853, lat=42.516884, lon=-87.949341, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421536262, city=4853, lat=42.518337, lon=-87.948875, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421536290, city=4853, lat=42.518337, lon=-87.948875, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421541857, city=713, lat=42.952927, lon=-87.9496, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421542431, city=713, lat=42.953178, lon=-87.948677, moving=1, location=3, time_of_day=4)),
    train(itemId=77111, context=context(ts=1421545759, city=972, lat=42.926182, lon=-87.949654, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421548197, city=2995, lat=42.898632, lon=-87.85186, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421548320, city=2995, lat=42.898533, lon=-87.85173, moving=2, location=3, time_of_day=4)),
    train(itemId=68168, context=context(ts=1421551200, city=2995, lat=42.897579, lon=-87.853821, moving=1, location=3, time_of_day=4)),
    train(itemId=29345, context=context(ts=1421551465, city=2995, lat=42.897579, lon=-87.853821, moving=2, location=3, time_of_day=4)),
    train(itemId=42869, context=context(ts=1421552038, city=2995, lat=42.897572, lon=-87.85376, moving=1, location=3, time_of_day=4)),
    train(itemId=68168, context=context(ts=1421552043, city=2995, lat=42.897549, lon=-87.853737, moving=2, location=3, time_of_day=4)),
    train(itemId=81629, context=context(ts=1421552171, city=2995, lat=42.897549, lon=-87.853737, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421552222, city=2995, lat=42.897549, lon=-87.853737, moving=2, location=3, time_of_day=4)),
    train(itemId=88438, context=context(ts=1421553044, city=2995, lat=42.897713, lon=-87.853752, moving=1, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421553237, city=2995, lat=42.897728, lon=-87.853813, moving=2, location=3, time_of_day=4)),
    train(itemId=94874, context=context(ts=1421556327, city=2995, lat=42.897614, lon=-87.85379, moving=1, location=3, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421557811, city=2995, lat=42.897736, lon=-87.853806, moving=1, location=1, time_of_day=1)),
    train(itemId=94874, context=context(ts=1421562244, city=2995, lat=42.897774, lon=-87.853882, moving=1, location=1, time_of_day=1))]])]

In [ ]:
def remove_duplicates(values):
    output = []
    seen = set()
    for value in values:
        # If value has not been encountered yet,
        # ... add it to both list and set.
        if value not in seen:
            output.append(value)
            seen.add(value)
    return output

def evaluation_rr(testList, recList):
    scores = 0
    for t in testList:
        for i in range(len(recList)):
            if t == recList[i]:
                scores = scores + 1.0 / (i+1)
                break
    scores = scores / len(testList)
    return scores

def evaluation_ap(testList, recList):
    scores = 0
    num = 0 
    rr = []
    rr[:len(recList)] = [0 for i in range(len(recList))]
    for t in testList:
        for i in range(len(recList)):
            if t == recList[i]:
                rr[i] = 1
    
    for t in testList:    
        for i in range(len(recList)):
            if t == recList[i]:
                for j in range(i,len(recList)):    
                    if rr[j] == 1:
                        scores = scores + 1.0 / (j+1)
                        num = num + 1
                break
    if num == 0:
        scores = 0
    else:
        scores = scores / num
    return scores

def evaluation_recall(testList, recList):
    scores = 0
    num = 0
    recall = []
    recall[:len(recList)] = [0 for i in range(len(recList))]
    rr=[]
    rr[:len(recList)] = [0 for i in range(len(recList))]
    for t in testList:
        for i in range(len(recList)):
            if t == recList[i]:
                rr[i] = 1
    for t in testList:    
        for i in range(len(recList)):
            if t == recList[i]:
                for j in range(i,len(recList)):    
                    recall[j] = recall[j] + 1.0
                    num = num + 1  
                break    
    recall = [0 if num == 0 else x*sum(rr)/num for x in recall]
    return recall
def print_result(finalScore, algorithm_name):
    f = open('result/resultOfEvaluation1.txt','a')
    f.write(algorithm_name + ' by mrr:'+str(finalScore.map(lambda x:x[0]).mean()))
    f.write('\n')
    f.write(algorithm_name + ' by map:'+str(finalScore.map(lambda x:x[1]).mean()))
    f.write('\n')
    f.write(algorithm_name + ' by recall:')
    for i in range(numRecList):
        if i == 0:
            f.write(' '+str(finalScore.map(lambda x:x[2][i]).mean()))
        elif i == numRecList-1:
            f.write(','+str(finalScore.map(lambda x:x[2][i]).mean()) + '\n')
        else:
            f.write(','+str(finalScore.map(lambda x:x[2][i]).mean()))
    f.close()

In [ ]:
numRecList = 5
def lruFunction(line):
    listGroup = line[1]
    l = len(listGroup)  
    trainList = listGroup[0]      #0.8 train set
    testList = listGroup[1]       #0.2 test set
    numTrain = len(trainList)
    numTest = l - numTrain
    trainList = sorted(trainList,key=lambda x:int(x[1][0]), reverse=True);  #sort by timestamp with descending
    testList = [t[0] for t in testList]                      #take only id for test set
    RecommenderDuplicate =  [t[0] for t in trainList]        #take only id for train set
    Recommender = remove_duplicates(RecommenderDuplicate)    #remove duplicate
    
    if len(Recommender) > numRecList-1:
        finalRecommender = Recommender[:numRecList]
    else:    
        finalRecommender = [-1,-1,-1,-1,-1]
        numRec = len(Recommender)
        finalRecommender[:numRec] = Recommender
    
    scores_rr = evaluation_rr(testList, finalRecommender)
    scores_ap = evaluation_ap(testList, finalRecommender)
    scores_recall = evaluation_recall(testList, finalRecommender)
    return scores_rr, scores_ap, scores_recall#[0],scores_recall[1],scores_recall[2],scores_recall[3],scores_recall[4]

finalScore = splitedRdd.map(lruFunction)
#finalScore.map(lambda x:x[2][0]).mean()
#finalScore.take(10)#,finalScore.map(lambda x:x[2]).mean()
print_result(finalScore, 'lru')

In [ ]:
def mruFunction(line):
    listGroup = line[1]
    l = len(listGroup)  
    trainList = listGroup[0]      #0.8 train set
    testList = listGroup[1]       #0.2 test set
    numTrain = len(trainList)
    numTest = l - numTrain    
    #trainList = sorted(trainList,key=lambda x:int(x[1]), reverse=True);  #sort by timestamp with descending
    testList = [t[0] for t in testList]                      #take only id for test set
    RecommenderDuplicate =  [t[0] for t in trainList]        #take only id for train set
    Recommender = remove_duplicates(RecommenderDuplicate)    #remove duplicate
    
    if len(Recommender) > 4:
        finalRecommender = Recommender[:5]
    else:
        finalRecommender = [-1,-1,-1,-1,-1]
        numRec = len(Recommender)
        finalRecommender[:numRec] = Recommender
    scores_rr = evaluation_rr(testList, finalRecommender)
    scores_ap = evaluation_ap(testList, finalRecommender)
    scores_recall = evaluation_recall(testList, finalRecommender)
    return scores_rr, scores_ap, scores_recall
finalScore = splitedRdd.map(mruFunction)
print_result(finalScore,'mru')

In [ ]:
from collections import Counter
def mruFunction(line):
    listGroup = line[1]
    l = len(listGroup)  
    trainList = listGroup[0]      #0.8 train set
    testList = listGroup[1]       #0.2 test set
    numTrain = len(trainList)
    numTest = l - numTrain   
    
    testList = [t[0] for t in testList]                      #take only id for test set
    RecommenderDuplicate =  [t[0] for t in trainList]        #take only id for train set
    #Recommender = remove_duplicates(RecommenderDuplicate)    #remove duplicate
    Recommender = Counter(RecommenderDuplicate).most_common()
    Recommender =  [t[0] for t in Recommender] 

    if len(Recommender) > 4:
        finalRecommender = Recommender[:5]
    else:
        finalRecommender = [-1,-1,-1,-1,-1]
        numRec = len(Recommender)
        finalRecommender[:numRec] = Recommender
    scores_rr = evaluation_rr(testList, finalRecommender)
    scores_ap = evaluation_ap(testList, finalRecommender)
    scores_recall = evaluation_recall(testList, finalRecommender)
    return scores_rr, scores_ap, scores_recall
finalScore = splitedRdd.map(mruFunction)
print_result(finalScore,'mfu')

In [12]:
def evaluation_ap(testList, recList):
    scores = 0
    num = 0 
    rr = []
    rr[:len(recList)] = [0 for i in range(len(recList))]
    for t in testList:
        for i in range(len(recList)):
            if t == recList[i]:
                rr[i] = 1
    
    for t in testList:    
        for i in range(len(recList)):
            if t == recList[i]:
                for j in range(i,len(recList)):    
                    if rr[j] == 1:
                        scores = scores + 1.0 / (j+1)
                        num = num + 1
                break
    if num == 0:
        scores = 0
    else:
        scores = scores / num
    return scores
evaluation_ap('ASFDG','ABCDE')


Out[12]:
0.5

In [ ]: