Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# nb 011p3: Open ./data as timeseries (cont)\n",
"\n",
"We combined the OD data into a single dataframe that, indexed by a plateID, provides a list of events sorted by pickup time.\n",
"\n",
"Now do the same, for GPS!\n",
"\n",
"***This script will use a lot of RAM! Like, 12GB or so at most. So, heads up.***"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from math import floor, ceil\n",
"from matplotlib import path\n",
"\n",
"# Just some code from our previous files...\n",
"\n",
"# List of filenames of the original data\n",
"original_gps_fns = [\"./DataForUConn/201407GPS/part-r-{x}\".format(x=str(x).rjust(5,\"0\")) for x in range(2)]\n",
"\n",
"# Time string to unix time converter\n",
"formattime = lambda timestr: int(time.mktime(time.strptime(timestr, \"%Y-%m-%dT%H:%M:%S.000Z\")))\n",
"\n",
"# Headers\n",
"gps_headers = [\"id\", \"color\", \"lon\", \"lat\", \"time\", \"speed\", \"noMeaning\"]\n",
"\n",
"# Filenames of our pickles\n",
"gps_fns = [\"./data/gps_part-r-{x}.pkl\".format(x=str(x).rjust(3, \"0\")) for x in range(2)]\n",
"\n",
"# Region IDs corresponding to each row of a given dataframe.\n",
"# These were processed in scr_005 and scr_006\n",
"# e.g. od_pick-004.csv row 12345 is an integer RegionID, mapping the lat/lon of of row 12345 of dataframe od_part-m-004.pkl\n",
"gps_rid_fns = [\"./data/gps_rid-{x}.csv\".format(x=str(x).rjust(3,\"0\")) for x in range(2)]\n",
"\n",
"# Start, end times\n",
"start_time = 1404360000\n",
"end_time = 1405828798\n",
"\n",
"def time_to_index(tt, st = 1404360000, divisor=60):\n",
" return floor((tt-st)/divisor)\n",
"\n",
"NN = ceil((end_time - start_time)/60)\n",
"\n",
"# Read the processed CSVs\n",
"def _safe_to_int(cell):\n",
" # some cells are empty, so, return None instead of int\n",
" try:\n",
" return int(cell)\n",
" except ValueError:\n",
" return None\n",
"\n",
"def read_rid_csv(fn):\n",
" with open(fn) as f:\n",
" return [[_safe_to_int(cell) for cell in line.split(\",\")] for line in f.read().strip().split(\"\\n\")]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"gps_dfs = [pd.read_pickle(gps_fn) for gps_fn in gps_fns]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"gps_rids = [read_rid_csv(fn) for fn in gps_rid_fns]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"assert len(gps_dfs) == len(gps_rids)\n",
"\n",
"for ii in range(len(gps_dfs)):\n",
" assert len(gps_dfs[ii]) == len(gps_rids[ii])\n",
" gps_dfs[ii][\"RID\"] = [rid[0] for rid in gps_rids[ii]]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"for df in gps_dfs:\n",
" df.dropna(inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"GPS = pd.concat(gps_dfs, ignore_index=True)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>color</th>\n",
" <th>lon</th>\n",
" <th>lat</th>\n",
" <th>time</th>\n",
" <th>speed</th>\n",
" <th>noMeaning</th>\n",
" <th>RID</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>粤B0AA56</td>\n",
" <td>蓝的</td>\n",
" <td>113.961098</td>\n",
" <td>22.553101</td>\n",
" <td>1404360002</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>158.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>粤B0AA56</td>\n",
" <td>蓝的</td>\n",
" <td>113.962303</td>\n",
" <td>22.547001</td>\n",
" <td>1404360108</td>\n",
" <td>21</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>粤B0AA56</td>\n",
" <td>蓝的</td>\n",
" <td>113.962997</td>\n",
" <td>22.547001</td>\n",
" <td>1404360138</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>粤B0AA56</td>\n",
" <td>蓝的</td>\n",
" <td>113.963799</td>\n",
" <td>22.546400</td>\n",
" <td>1404360168</td>\n",
" <td>11</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>粤B0AA56</td>\n",
" <td>蓝的</td>\n",
" <td>113.963997</td>\n",
" <td>22.544399</td>\n",
" <td>1404360232</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649207</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>蓝的</td>\n",
" <td>114.023399</td>\n",
" <td>22.620399</td>\n",
" <td>1405828297</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649208</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>蓝的</td>\n",
" <td>114.022102</td>\n",
" <td>22.620100</td>\n",
" <td>1405828327</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649209</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>蓝的</td>\n",
" <td>114.020599</td>\n",
" <td>22.620100</td>\n",
" <td>1405828384</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649210</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>蓝的</td>\n",
" <td>114.013603</td>\n",
" <td>22.608601</td>\n",
" <td>1405828731</td>\n",
" <td>31</td>\n",
" <td>0</td>\n",
" <td>290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649211</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>蓝的</td>\n",
" <td>114.009903</td>\n",
" <td>22.605499</td>\n",
" <td>1405828774</td>\n",
" <td>35</td>\n",
" <td>0</td>\n",
" <td>297.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>17649212 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" id color lon lat time speed noMeaning \\\n",
"0 粤B0AA56 蓝的 113.961098 22.553101 1404360002 17 0 \n",
"1 粤B0AA56 蓝的 113.962303 22.547001 1404360108 21 0 \n",
"2 粤B0AA56 蓝的 113.962997 22.547001 1404360138 0 0 \n",
"3 粤B0AA56 蓝的 113.963799 22.546400 1404360168 11 0 \n",
"4 粤B0AA56 蓝的 113.963997 22.544399 1404360232 8 0 \n",
"... ... ... ... ... ... ... ... \n",
"17649207 粤BZ9Z49 蓝的 114.023399 22.620399 1405828297 20 0 \n",
"17649208 粤BZ9Z49 蓝的 114.022102 22.620100 1405828327 0 0 \n",
"17649209 粤BZ9Z49 蓝的 114.020599 22.620100 1405828384 0 0 \n",
"17649210 粤BZ9Z49 蓝的 114.013603 22.608601 1405828731 31 0 \n",
"17649211 粤BZ9Z49 蓝的 114.009903 22.605499 1405828774 35 0 \n",
"\n",
" RID \n",
"0 158.0 \n",
"1 311.0 \n",
"2 311.0 \n",
"3 311.0 \n",
"4 311.0 \n",
"... ... \n",
"17649207 301.0 \n",
"17649208 301.0 \n",
"17649209 301.0 \n",
"17649210 290.0 \n",
"17649211 297.0 \n",
"\n",
"[17649212 rows x 8 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"del(GPS[\"noMeaning\"])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"del(GPS[\"color\"])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>lon</th>\n",
" <th>lat</th>\n",
" <th>time</th>\n",
" <th>speed</th>\n",
" <th>RID</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>粤B0AA56</td>\n",
" <td>113.961098</td>\n",
" <td>22.553101</td>\n",
" <td>1404360002</td>\n",
" <td>17</td>\n",
" <td>158.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>粤B0AA56</td>\n",
" <td>113.962303</td>\n",
" <td>22.547001</td>\n",
" <td>1404360108</td>\n",
" <td>21</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>粤B0AA56</td>\n",
" <td>113.962997</td>\n",
" <td>22.547001</td>\n",
" <td>1404360138</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>粤B0AA56</td>\n",
" <td>113.963799</td>\n",
" <td>22.546400</td>\n",
" <td>1404360168</td>\n",
" <td>11</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>粤B0AA56</td>\n",
" <td>113.963997</td>\n",
" <td>22.544399</td>\n",
" <td>1404360232</td>\n",
" <td>8</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649207</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>114.023399</td>\n",
" <td>22.620399</td>\n",
" <td>1405828297</td>\n",
" <td>20</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649208</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>114.022102</td>\n",
" <td>22.620100</td>\n",
" <td>1405828327</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649209</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>114.020599</td>\n",
" <td>22.620100</td>\n",
" <td>1405828384</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649210</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>114.013603</td>\n",
" <td>22.608601</td>\n",
" <td>1405828731</td>\n",
" <td>31</td>\n",
" <td>290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17649211</th>\n",
" <td>粤BZ9Z49</td>\n",
" <td>114.009903</td>\n",
" <td>22.605499</td>\n",
" <td>1405828774</td>\n",
" <td>35</td>\n",
" <td>297.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>17649212 rows × 6 columns</p>\n",
"</div>"
],
"text/plain": [
" id lon lat time speed RID\n",
"0 粤B0AA56 113.961098 22.553101 1404360002 17 158.0\n",
"1 粤B0AA56 113.962303 22.547001 1404360108 21 311.0\n",
"2 粤B0AA56 113.962997 22.547001 1404360138 0 311.0\n",
"3 粤B0AA56 113.963799 22.546400 1404360168 11 311.0\n",
"4 粤B0AA56 113.963997 22.544399 1404360232 8 311.0\n",
"... ... ... ... ... ... ...\n",
"17649207 粤BZ9Z49 114.023399 22.620399 1405828297 20 301.0\n",
"17649208 粤BZ9Z49 114.022102 22.620100 1405828327 0 301.0\n",
"17649209 粤BZ9Z49 114.020599 22.620100 1405828384 0 301.0\n",
"17649210 粤BZ9Z49 114.013603 22.608601 1405828731 31 290.0\n",
"17649211 粤BZ9Z49 114.009903 22.605499 1405828774 35 297.0\n",
"\n",
"[17649212 rows x 6 columns]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"GPS.sort_values(by=\"time\", inplace=True)\n",
"GPS.reset_index(inplace=True)\n",
"del(GPS[\"index\"])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['id', 'lon', 'lat', 'time', 'speed', 'RID'], dtype='object')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS.keys()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"GPS.sort_values(by='id', kind='mergesort', axis=0, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"GPS.set_index(keys=['id'], drop=True, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['粤B0AA56',\n",
" '粤B0AB41',\n",
" '粤B0AC42',\n",
" '粤B0AD42',\n",
" '粤B0AF42',\n",
" '粤B0AF47',\n",
" '粤B0BA42',\n",
" '粤B0BA45',\n",
" '粤B0BA47',\n",
" '粤B0BA49']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"IDs = GPS.index.unique().tolist()\n",
"IDs[:10]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>lon</th>\n",
" <th>lat</th>\n",
" <th>time</th>\n",
" <th>speed</th>\n",
" <th>RID</th>\n",
" </tr>\n",
" <tr>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>114.110901</td>\n",
" <td>22.587099</td>\n",
" <td>1404360202</td>\n",
" <td>39</td>\n",
" <td>189.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>114.114502</td>\n",
" <td>22.581400</td>\n",
" <td>1404360232</td>\n",
" <td>38</td>\n",
" <td>200.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>114.116997</td>\n",
" <td>22.576099</td>\n",
" <td>1404360262</td>\n",
" <td>45</td>\n",
" <td>202.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>114.117897</td>\n",
" <td>22.568501</td>\n",
" <td>1404360317</td>\n",
" <td>21</td>\n",
" <td>201.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>114.120598</td>\n",
" <td>22.557899</td>\n",
" <td>1404360377</td>\n",
" <td>18</td>\n",
" <td>274.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>113.988297</td>\n",
" <td>22.525200</td>\n",
" <td>1405828290</td>\n",
" <td>0</td>\n",
" <td>310.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>113.988297</td>\n",
" <td>22.525200</td>\n",
" <td>1405828320</td>\n",
" <td>0</td>\n",
" <td>310.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>113.988297</td>\n",
" <td>22.525200</td>\n",
" <td>1405828350</td>\n",
" <td>0</td>\n",
" <td>310.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>113.988297</td>\n",
" <td>22.525200</td>\n",
" <td>1405828419</td>\n",
" <td>0</td>\n",
" <td>310.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0BA42</th>\n",
" <td>113.988297</td>\n",
" <td>22.525200</td>\n",
" <td>1405828750</td>\n",
" <td>0</td>\n",
" <td>310.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>22896 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" lon lat time speed RID\n",
"id \n",
"粤B0BA42 114.110901 22.587099 1404360202 39 189.0\n",
"粤B0BA42 114.114502 22.581400 1404360232 38 200.0\n",
"粤B0BA42 114.116997 22.576099 1404360262 45 202.0\n",
"粤B0BA42 114.117897 22.568501 1404360317 21 201.0\n",
"粤B0BA42 114.120598 22.557899 1404360377 18 274.0\n",
"... ... ... ... ... ...\n",
"粤B0BA42 113.988297 22.525200 1405828290 0 310.0\n",
"粤B0BA42 113.988297 22.525200 1405828320 0 310.0\n",
"粤B0BA42 113.988297 22.525200 1405828350 0 310.0\n",
"粤B0BA42 113.988297 22.525200 1405828419 0 310.0\n",
"粤B0BA42 113.988297 22.525200 1405828750 0 310.0\n",
"\n",
"[22896 rows x 5 columns]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS.loc['粤B0BA42']"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>lon</th>\n",
" <th>lat</th>\n",
" <th>time</th>\n",
" <th>speed</th>\n",
" <th>RID</th>\n",
" </tr>\n",
" <tr>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.961098</td>\n",
" <td>22.553101</td>\n",
" <td>1404360002</td>\n",
" <td>17</td>\n",
" <td>158.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.962303</td>\n",
" <td>22.547001</td>\n",
" <td>1404360108</td>\n",
" <td>21</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.962997</td>\n",
" <td>22.547001</td>\n",
" <td>1404360138</td>\n",
" <td>0</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.963799</td>\n",
" <td>22.546400</td>\n",
" <td>1404360168</td>\n",
" <td>11</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.963997</td>\n",
" <td>22.544399</td>\n",
" <td>1404360232</td>\n",
" <td>8</td>\n",
" <td>311.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.023399</td>\n",
" <td>22.620399</td>\n",
" <td>1405828297</td>\n",
" <td>20</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.022102</td>\n",
" <td>22.620100</td>\n",
" <td>1405828327</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.020599</td>\n",
" <td>22.620100</td>\n",
" <td>1405828384</td>\n",
" <td>0</td>\n",
" <td>301.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.013603</td>\n",
" <td>22.608601</td>\n",
" <td>1405828731</td>\n",
" <td>31</td>\n",
" <td>290.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.009903</td>\n",
" <td>22.605499</td>\n",
" <td>1405828774</td>\n",
" <td>35</td>\n",
" <td>297.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>17649212 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" lon lat time speed RID\n",
"id \n",
"粤B0AA56 113.961098 22.553101 1404360002 17 158.0\n",
"粤B0AA56 113.962303 22.547001 1404360108 21 311.0\n",
"粤B0AA56 113.962997 22.547001 1404360138 0 311.0\n",
"粤B0AA56 113.963799 22.546400 1404360168 11 311.0\n",
"粤B0AA56 113.963997 22.544399 1404360232 8 311.0\n",
"... ... ... ... ... ...\n",
"粤BZ9Z49 114.023399 22.620399 1405828297 20 301.0\n",
"粤BZ9Z49 114.022102 22.620100 1405828327 0 301.0\n",
"粤BZ9Z49 114.020599 22.620100 1405828384 0 301.0\n",
"粤BZ9Z49 114.013603 22.608601 1405828731 31 290.0\n",
"粤BZ9Z49 114.009903 22.605499 1405828774 35 297.0\n",
"\n",
"[17649212 rows x 5 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"GPS[\"RID\"] = GPS[\"RID\"].astype(np.int32)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>lon</th>\n",
" <th>lat</th>\n",
" <th>time</th>\n",
" <th>speed</th>\n",
" <th>RID</th>\n",
" </tr>\n",
" <tr>\n",
" <th>id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.961098</td>\n",
" <td>22.553101</td>\n",
" <td>1404360002</td>\n",
" <td>17</td>\n",
" <td>158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.962303</td>\n",
" <td>22.547001</td>\n",
" <td>1404360108</td>\n",
" <td>21</td>\n",
" <td>311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.962997</td>\n",
" <td>22.547001</td>\n",
" <td>1404360138</td>\n",
" <td>0</td>\n",
" <td>311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.963799</td>\n",
" <td>22.546400</td>\n",
" <td>1404360168</td>\n",
" <td>11</td>\n",
" <td>311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤B0AA56</th>\n",
" <td>113.963997</td>\n",
" <td>22.544399</td>\n",
" <td>1404360232</td>\n",
" <td>8</td>\n",
" <td>311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.023399</td>\n",
" <td>22.620399</td>\n",
" <td>1405828297</td>\n",
" <td>20</td>\n",
" <td>301</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.022102</td>\n",
" <td>22.620100</td>\n",
" <td>1405828327</td>\n",
" <td>0</td>\n",
" <td>301</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.020599</td>\n",
" <td>22.620100</td>\n",
" <td>1405828384</td>\n",
" <td>0</td>\n",
" <td>301</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.013603</td>\n",
" <td>22.608601</td>\n",
" <td>1405828731</td>\n",
" <td>31</td>\n",
" <td>290</td>\n",
" </tr>\n",
" <tr>\n",
" <th>粤BZ9Z49</th>\n",
" <td>114.009903</td>\n",
" <td>22.605499</td>\n",
" <td>1405828774</td>\n",
" <td>35</td>\n",
" <td>297</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>17649212 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" lon lat time speed RID\n",
"id \n",
"粤B0AA56 113.961098 22.553101 1404360002 17 158\n",
"粤B0AA56 113.962303 22.547001 1404360108 21 311\n",
"粤B0AA56 113.962997 22.547001 1404360138 0 311\n",
"粤B0AA56 113.963799 22.546400 1404360168 11 311\n",
"粤B0AA56 113.963997 22.544399 1404360232 8 311\n",
"... ... ... ... ... ...\n",
"粤BZ9Z49 114.023399 22.620399 1405828297 20 301\n",
"粤BZ9Z49 114.022102 22.620100 1405828327 0 301\n",
"粤BZ9Z49 114.020599 22.620100 1405828384 0 301\n",
"粤BZ9Z49 114.013603 22.608601 1405828731 31 290\n",
"粤BZ9Z49 114.009903 22.605499 1405828774 35 297\n",
"\n",
"[17649212 rows x 5 columns]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"GPS"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"GPS.to_pickle(\"./data/GPS_combined.pkl\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# TODO:\n",
"# Now, to document what I've done, and extract charging events ..."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}