{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport pickle\nfrom collections import defaultdict\nimport matplotlib.pyplot as plt","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-10-24T12:05:28.275906Z","iopub.execute_input":"2022-10-24T12:05:28.276297Z","iopub.status.idle":"2022-10-24T12:05:28.282126Z","shell.execute_reply.started":"2022-10-24T12:05:28.276265Z","shell.execute_reply":"2022-10-24T12:05:28.280947Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![projection.png](attachment:84bd7012-ee40-429c-84a2-c50ae2bb8653.png)","metadata":{},"attachments":{"84bd7012-ee40-429c-84a2-c50ae2bb8653.png":{"image/png":"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O8vesMoZdiIiIiLSnEAfFyyeOgg5ujxMnLsJcclZOHMl+bqwLizdeFJ+Zrk4w05EREREmpaYmo3JX2zDoTNxMBQSXf947074ezvLI8vDGXYiIiIi0jRvd0c0r1+n0LAuvPv9bvmZZWJgJyIiIiJNO3QmFt+vPy6PbrbjaKQ6+26puCSGiIiIiDQrIzsXvSf9JI+KZm2lBPdPx8LWxvLmoznDTkRERESa9X9L98rPimcwAr9vPyuPLAsDOxERERFp0rbDEQjwdkb3lkFwd7aXo0V7b8keJKfnyCPLwSUxRERERGQWxKZTUeZRNFRKSM1Sa7WLJkunryTh6PkExCRmYEjX+pjxUFd5DcvAwE5EREREFkGkWl1uHvIMRjg72spR88fATkRERESkYVzDTkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsREREREQaxsBORERERKRhDOxERERERBrGwE5EREREpGEM7EREREREGsbATkRERESkYQzsRERERESaBfw/5+yDLMfR7Y0AAAAASUVORK5CYII="}}},{"cell_type":"markdown","source":"This notebook explains how to find the real-time rank using projection. \n\nMean velocity may represent what the horse is going.\n\nTherefore, the horse must have a high rank if the projection value is large.","metadata":{}},{"cell_type":"code","source":"with open(\"../input/race-time-outlier-visualization-v0/rcsttk_table.pkl\", 'rb') as f:\n    df = pickle.load(f)\ndf","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:30.032050Z","iopub.execute_input":"2022-10-24T12:05:30.033036Z","iopub.status.idle":"2022-10-24T12:05:31.757351Z","shell.execute_reply.started":"2022-10-24T12:05:30.032998Z","shell.execute_reply":"2022-10-24T12:05:31.755883Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Sample race","metadata":{}},{"cell_type":"code","source":"N = len(df)\nsample_idx = np.random.choice(N)\nsample_df = df.loc[sample_idx, ['latitude','longitude']]","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:33.807951Z","iopub.execute_input":"2022-10-24T12:05:33.808394Z","iopub.status.idle":"2022-10-24T12:05:33.818472Z","shell.execute_reply.started":"2022-10-24T12:05:33.808344Z","shell.execute_reply":"2022-10-24T12:05:33.817172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"position_at_finish = df.loc[sample_idx, 'position_at_finish']\nprint(f\"position_at_finish: {position_at_finish}\")\n\nlat_list = sample_df['latitude']\nlng_list = sample_df['longitude']\n\nlnglat_list = []\nfor item in zip(lat_list, lng_list):\n    lat, lng = item \n    lnglat = np.vstack([lng, lat]).T\n    lnglat_list.append(lnglat)\n    \nprint(f\"lnglat_list (list of list) : {len(lnglat_list), len(lnglat_list[0])}\")","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:34.592164Z","iopub.execute_input":"2022-10-24T12:05:34.593462Z","iopub.status.idle":"2022-10-24T12:05:34.602834Z","shell.execute_reply.started":"2022-10-24T12:05:34.593412Z","shell.execute_reply":"2022-10-24T12:05:34.601660Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def calculate_velocity(lnglat, dt=0.25):\n    lnglat_diff = lnglat[2:] - lnglat[:-2]\n\n    velocity = lnglat_diff/(2*dt)\n    velocity = np.vstack([np.array([velocity[0]/2]),\n                          velocity,\n                          np.array([2*velocity[-1] - velocity[-2]])])\n    velocity = 3600*velocity\n    return velocity","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:35.912249Z","iopub.execute_input":"2022-10-24T12:05:35.912656Z","iopub.status.idle":"2022-10-24T12:05:35.921326Z","shell.execute_reply.started":"2022-10-24T12:05:35.912623Z","shell.execute_reply":"2022-10-24T12:05:35.919195Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_velocity_list(lnglat_list):\n    velocity_list = []\n    for lnglat in lnglat_list:\n        vel = calculate_velocity(lnglat)\n        velocity_list.append(vel)\n    return velocity_list","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:37.007332Z","iopub.execute_input":"2022-10-24T12:05:37.007871Z","iopub.status.idle":"2022-10-24T12:05:37.014429Z","shell.execute_reply.started":"2022-10-24T12:05:37.007788Z","shell.execute_reply":"2022-10-24T12:05:37.013252Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sample_vel_list = get_velocity_list(lnglat_list)\n\nn = len(sample_vel_list)\nmax_trakus = max([len(vel) for vel in sample_vel_list])    \nprint(f\"num_horse: {n}\")\nprint(f\"max_trakus: {max_trakus}\")\nprint(f\"sample_vel_list (list of list) : {len(sample_vel_list), len(sample_vel_list[0])}\")","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:38.151447Z","iopub.execute_input":"2022-10-24T12:05:38.152156Z","iopub.status.idle":"2022-10-24T12:05:38.160983Z","shell.execute_reply.started":"2022-10-24T12:05:38.152118Z","shell.execute_reply":"2022-10-24T12:05:38.159726Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def get_race_ranking_list(velocity_list, lnglat_list):\n    n = len(velocity_list)\n    max_trakus = max([len(vel) for vel in velocity_list])   \n    race_ranking_list = []\n    for trakus in range(max_trakus):\n        cur_mean_vel = []\n        for i in range(n):\n            horse_vel = velocity_list[i]\n            if trakus > len(horse_vel) - 1:\n                continue\n            else:\n                cur_vel = horse_vel[trakus]\n                cur_mean_vel.append(cur_vel)\n        cur_mean_vel = np.mean(cur_mean_vel,axis=0)\n        cur_speed = np.linalg.norm(cur_mean_vel)\n        cur_mean_vel = np.divide(cur_mean_vel, cur_speed, out=np.zeros_like(cur_mean_vel), where=cur_speed!=0)\n\n        proj_x_list = []\n        for i in range(n):\n            horse_position = lnglat_list[i]\n            if trakus > len(horse_position) - 1:\n                proj_x_list.append(float('-inf'))\n                continue\n            cur_horse  = horse_position[trakus]\n            proj_x = np.sum(cur_mean_vel*cur_horse)\n            proj_x_list.append(proj_x)\n\n        sorted_idx = np.argsort(proj_x_list)\n        cur_ranking = np.zeros_like(sorted_idx)\n        cur_ranking[sorted_idx] = n - np.arange(n)\n        race_ranking_list.append(cur_ranking)\n\n    race_ranking_list = np.array(race_ranking_list)\n    return race_ranking_list","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:38.911857Z","iopub.execute_input":"2022-10-24T12:05:38.912476Z","iopub.status.idle":"2022-10-24T12:05:38.923029Z","shell.execute_reply.started":"2022-10-24T12:05:38.912438Z","shell.execute_reply":"2022-10-24T12:05:38.921469Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"realtime_trakus_rank = get_race_ranking_list(sample_vel_list, lnglat_list)\nrealtime_trakus_rank","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:39.615072Z","iopub.execute_input":"2022-10-24T12:05:39.615505Z","iopub.status.idle":"2022-10-24T12:05:39.669714Z","shell.execute_reply.started":"2022-10-24T12:05:39.615466Z","shell.execute_reply":"2022-10-24T12:05:39.668807Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12,6))\nplt.plot(realtime_trakus_rank, alpha=0.5, label=np.arange(1, realtime_trakus_rank.shape[1]+1))\nplt.legend(bbox_to_anchor=(1.3, 1.05))\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-10-24T12:05:40.511368Z","iopub.execute_input":"2022-10-24T12:05:40.512572Z","iopub.status.idle":"2022-10-24T12:05:40.822407Z","shell.execute_reply.started":"2022-10-24T12:05:40.512533Z","shell.execute_reply":"2022-10-24T12:05:40.821267Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}