{"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":"markdown","source":"Published on November 05, 2023. By Marília Prata, mpwolke.","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport glob\nimport matplotlib.pyplot as plt\nfrom tqdm.notebook import tqdm\nfrom pathlib import Path\nimport plotly.express as px\n\n#Ignore warnings\nimport warnings\nwarnings.filterwarnings('ignore')\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2023-11-05T17:07:55.707818Z","iopub.execute_input":"2023-11-05T17:07:55.708385Z","iopub.status.idle":"2023-11-05T17:07:57.149311Z","shell.execute_reply.started":"2023-11-05T17:07:55.708350Z","shell.execute_reply":"2023-11-05T17:07:57.147040Z"},"_kg_hide-input":true,"_kg_hide-output":true,"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Thanks to Nayu T. S. (2 years ago on Google Smartphone Decimeter Challenge)\n\nhttps://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n\nAnd Oliver (1 year ago on Google Smartphone Decimeter Challenge 2022)\n\nhttps://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook","metadata":{}},{"cell_type":"markdown","source":"#Competition Citation\n\n@misc{smartphone-decimeter-2023,\n\n    author = {Ashley Chow, Dave Orendorff, Michael Fu, Mohammed Khider, Sohier Dane, Vivek Gulati},\n    \n    title = {Google Smartphone Decimeter Challenge 2023},\n    \n    publisher = {Kaggle},\n    \n    year = {2023},\n    \n    url = {https://kaggle.com/competitions/smartphone-decimeter-2023}\n}","metadata":{"_kg_hide-input":true}},{"cell_type":"markdown","source":"#Pynmea2\n\npynmea2 is a python library for the NMEA 0183 protocol\n\nThe pynmea2 homepage is located at http://github.com/Knio/pynmea2\n\npynmea2 is based on pynmea by Becky Lewis\n\n\"Pynmea is a Python library for parsing NMEA data into usable objects.\n\n\"The idea of this project is to provide a general purpose approach to parsing NMEA data. Most other python libraries that deal with the data seem geared towards GPS only, leaving little room for developers to extend the library to their own needs. This project attempts to fill this gap.\"\n\nhttps://code.google.com/archive/p/pynmea/\n\n![](https://images.theengineeringprojects.com/image/webp/2023/06/23-install-minicom-and-pynmea2-01.jpg.webp?ssl=1)the engineering projects","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\n!pip install pynmea2\n\nimport glob\nimport itertools\nimport json\nimport os\nimport warnings\nwarnings.filterwarnings('ignore')\n\nimport geopandas as gpd\nfrom geopandas import GeoDataFrame\nimport geoplot as gplt\nfrom IPython.display import Video\nfrom matplotlib import animation\nimport matplotlib.pyplot as plt\nimport numpy as np \nimport pandas as pd\nimport plotly.express as px\nimport pynmea2\nimport requests\nimport seaborn\nfrom shapely.geometry import Point, shape\nimport shapely.wkt\n\n%matplotlib inline\n\nDATA_PATH = \"../input/smartphone-decimeter-2023/sdc2023/\"","metadata":{"_kg_hide-output":true,"execution":{"iopub.status.busy":"2023-11-05T17:12:05.491788Z","iopub.execute_input":"2023-11-05T17:12:05.492253Z","iopub.status.idle":"2023-11-05T17:12:19.468785Z","shell.execute_reply.started":"2023-11-05T17:12:05.492206Z","shell.execute_reply":"2023-11-05T17:12:19.467653Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub = pd.read_csv(DATA_PATH + \"sample_submission.csv\")\nsub.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:12:25.995511Z","iopub.execute_input":"2023-11-05T17:12:25.995934Z","iopub.status.idle":"2023-11-05T17:12:26.169785Z","shell.execute_reply.started":"2023-11-05T17:12:25.995903Z","shell.execute_reply":"2023-11-05T17:12:26.168445Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Many Directories on train","metadata":{}},{"cell_type":"code","source":"!ls ../input/smartphone-decimeter-2023/sdc2023/train","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:13:07.353541Z","iopub.execute_input":"2023-11-05T17:13:07.353953Z","iopub.status.idle":"2023-11-05T17:13:08.454189Z","shell.execute_reply.started":"2023-11-05T17:13:07.353920Z","shell.execute_reply":"2023-11-05T17:13:08.452580Z"},"_kg_hide-output":true,"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Under each collection Name, the data of the device is stored. Pick one with only 1 directorie.","metadata":{}},{"cell_type":"code","source":"!ls ../input/smartphone-decimeter-2023/sdc2023/train/2020-07-17-22-27-us-ca-mtv-sf-280","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:21:03.298035Z","iopub.execute_input":"2023-11-05T17:21:03.299203Z","iopub.status.idle":"2023-11-05T17:21:04.404895Z","shell.execute_reply.started":"2023-11-05T17:21:03.299162Z","shell.execute_reply":"2023-11-05T17:21:04.403588Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#In addition, the data collected from each device, groundtruth, and supplemental data are stored under it.","metadata":{}},{"cell_type":"code","source":"!ls ../input/smartphone-decimeter-2023/sdc2023/train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:23:19.523289Z","iopub.execute_input":"2023-11-05T17:23:19.524014Z","iopub.status.idle":"2023-11-05T17:23:20.648943Z","shell.execute_reply.started":"2023-11-05T17:23:19.523959Z","shell.execute_reply":"2023-11-05T17:23:20.647423Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#IMU\n\n\"An inertial measurement unit (IMU) is an electronic device that measures and reports a body's specific force, angular rate, and sometimes the orientation of the body, using a combination of accelerometers, gyroscopes, and sometimes magnetometers. When the magnetometer is included, IMUs are referred to as IMMUs.\"\n\nhttps://en.wikipedia.org/wiki/Inertial_measurement_unit\n\n\nBy Naman4u13:\n\n\"The correct IMU sensor for Pixel 4, it's most probably BMI160.\nhttps://www.bosch-sensortec.com/products/motion-sensors/imus/bmi160/\n\nYou can find the datasheet on the webpage. IMU sensors for a few of the other devices are the following :\n\nXIAOMI MI8 and HUAWEI P9: ICM20690 - Invensense\n\nSAMSUNG S8: LSM6DSL - ST Microelectronics\n\nOnce you know the sensor name, datasheets can be found on the internet.\n\nhttps://www.kaggle.com/competitions/smartphone-decimeter-2022/discussion/325291","metadata":{}},{"cell_type":"markdown","source":"#The supplemental data contains the raw data that was measured, and I'll show the way to read nmea.","metadata":{}},{"cell_type":"code","source":"!ls ../input/smartphone-decimeter-2023/sdc2023/train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4/supplemental","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:24:33.474359Z","iopub.execute_input":"2023-11-05T17:24:33.474850Z","iopub.status.idle":"2023-11-05T17:24:34.593096Z","shell.execute_reply.started":"2023-11-05T17:24:33.474812Z","shell.execute_reply":"2023-11-05T17:24:34.591787Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Those files came from above 2020-07-17-22-27-us-ca-mtv-sf-280/pixel4","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\ndf_sample_trail_gnss = pd.read_csv(DATA_PATH + \"train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4/device_gnss.csv\")\ndf_sample_trail_imu = pd.read_csv(DATA_PATH + \"train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4/device_imu.csv\")\ndf_sample_trail_gt = pd.read_csv(DATA_PATH + \"train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4/ground_truth.csv\")\n\ndf_sample_trail_gnss.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:35:43.213899Z","iopub.execute_input":"2023-11-05T17:35:43.214399Z","iopub.status.idle":"2023-11-05T17:35:44.539091Z","shell.execute_reply.started":"2023-11-05T17:35:43.214357Z","shell.execute_reply":"2023-11-05T17:35:44.537882Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Device_GNSS csv 58 columns","metadata":{}},{"cell_type":"code","source":"df_sample_trail_gnss.columns","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:33:47.329397Z","iopub.execute_input":"2023-11-05T17:33:47.329961Z","iopub.status.idle":"2023-11-05T17:33:47.338575Z","shell.execute_reply.started":"2023-11-05T17:33:47.329925Z","shell.execute_reply":"2023-11-05T17:33:47.337174Z"},"_kg_hide-output":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#ground_truth csv","metadata":{}},{"cell_type":"code","source":"df_sample_trail_gt.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:36:05.877176Z","iopub.execute_input":"2023-11-05T17:36:05.877783Z","iopub.status.idle":"2023-11-05T17:36:05.900217Z","shell.execute_reply.started":"2023-11-05T17:36:05.877729Z","shell.execute_reply":"2023-11-05T17:36:05.899050Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#How does IMU work in a smart antenna?\n\nMeasure with a tilted pole\n\n\"The position of the pole tip of a tilted GNSS antenna can be calculated by compensating the error caused by the inclination. To do this, we need to know the length of the pole, the tilt angle and the orientation of the tilt relative to north. \"\n\n\"An IMU consisting of accelerometers and gyroscopes is built into the GNSS smart antenna. This measures the angle, and the person using the antenna pre-defines the length of the pole in the software, making it possible to accurately measure with a tilted pole.\"\n\nhttps://geomax-positioning.com/products/gnss/zenith60/what-is-imu-surveying-construction","metadata":{}},{"cell_type":"markdown","source":"\n![image.png](attachment:ddc769ce-9d07-4de5-8d7f-f6f916f3e301.png)\n![image.png](attachment:12ecc104-2366-4477-a946-1383ae868cd8.png)\n\nhttps://www.unibw.de/lrt9/lrt-9.2/forschung/databank","metadata":{},"attachments":{"12ecc104-2366-4477-a946-1383ae868cd8.png":{"image/png":"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THOEaZey06MYrCHAvg08c2xe06R1azjVsJR59AQR5Y8BLlFIeYNHa5jyURz1DE/Ww4WzDv9TQ29nMDwq4/vMfELT26N6c/OeX2TOO+N9fqUA3y1vmT9TNR7MpMfWLUivul3FTnTKhbLm9HvSg2Wr4Ht6r4Kk/VkQle/jtjmRM8ufAbnS7n09FhWU9CgGbwPPfKZJ6zrmnts+N8qw8yURUFsNwabs53xzopljgEsUSnpYrnuooF6kohvdcWseX5pnuLCbtXhHvnM+M7xv4GCzY4Eca9XMfFux1XcSFaDmLMNz9ffO3hqvV5L272n24/uZYyfQ5lmIZKbMIittDQFXjtWLoPjPtaRCpfNFAofVojO7HekqSNqfMZGWD9sCipnmz2Ccaff+HosKirl+JF7XC6rp1cO1+UyT1nkEL4/zo1dHt0ZV6bL/fo+gIAozBrhEoZS+RZCDGfLoN8xLBXg5WsPl8C3HHCWz5brgy/f1dsLxPnVrB8c8KZ85gGbLepEXFY8j5hYTzsV2bOcl9zG3arC/7phjZVaftc4xZ8XCOq79M81tHeZqjpScp6VvsWI+32z63ORtXezP61u8+K+4TIVLjryII26fM28JkvaDct9z09wOzL7K7Yzyp69caXcuj0WFTq4fEY/7Nd7NZ5oUR1PXMW95PJO1D9z37lW3sLNdD71zdK2NjT5EQTy0bt26e0O//8D8SURu0T+sM4+g5ssQ0dyRlTYL8xctVswHtBgx3VNQ+aYV9uASERERERFRKDDAJSIiIiIiolBggEtEREREREShwACXiIiIiIiIQoEBLhEREREREYUCA1wiIiIiIiIKBQa4REREREREFAoMcImIiIiIiCgUGOASERERERFRKDDAJSIiIiIiolBggEtEREREREShwACXiIiIiIiIQoEBLhEREREREYUCA1wiIiIiIiIKBQa4REREREREFAoMcImIiIiIiCgUGOASERERERFRKDDAJSIiIiIiolBggEtEREREREShwACXiIiIiIiIQoEBLhEREREREYUCA1wiIiIiIiIKBQa4REREREREFAoMcImIiIiIiCgUGOASERERERFRKDy0bt26e+YxERERERER0YI0NDRkHmXGHlwiIiIiIiIKBQa4REREREREFApqiPLQ7z8wfxKRW/QP68yjYMMiiCi4aDRqHjF/0eLFfECLEdM9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"},"ddc769ce-9d07-4de5-8d7f-f6f916f3e301.png":{"image/png":"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D3+o8MGdAcM1iYh+ElOobGWgS0RERHegCFyuI3hNu/ZkA15e0gzP3Myfr05EdHtNnbKVgS4RERERERFlFAa6RERERERElFEY6BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZRQGukRERERERJRRGOgSERERERFRRmGgS0RERERERBmFgS4RERERERFlFAa6RERERERElFEY6BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZZRpb7311pBxn4iIiIiIiOiO9uabbxr3UtMC3TcXvoW3z7wF9S8RjeJ/53khIiIiIqIf29tvv60FuNF/x8IeXSIiIiIiIpo00gp0Fy9ePBzoNv32W+MeEcUr+91i457klaYm4x4R3QplZWXGPeYvmrqYD2gqYrqndI03rXAxKiIiIiIiIsooDHSJiIiIiIgoozDQJSIiIiIioozCQJeIiIiIiIgyCgNdIiIiIiIiyigMdImIiIiIiCijMNAlIiIiIiKijMJAl4iIiIiIiDIKA10iIiIiIiLKKAx0iYiIiIiIKKMw0CUiIiIiIqKMwkCXiIiIiIiIMsrEA90BO7z+Uuw7Wwx/v/HYBIV7Hag748a+C9nGI5ORBcHuYuw7XQZv2GI8RkRERERERD+2CQa6EtRdeBDbTyzF7pMrsKczBxHjmfGzItBejh3fqAAx6yb28xO7bkNjkwe7myTw/4Ed5US3Stfe51BWVhZ3ew6fdRobaLrw2XNleG5vl/G3oj+W+NoyvHfU2MQQfY/Y1xNNTswzNKUdfS8h/apbfBrWt3sPx40/NSleW/bcZ5I7zI7jPe25uNcTJYimlbjb+/EpR98uNp2meG1Cec70mMrEIrJBG3ztBUZQapH7DgSva38QEd16VVtwqKkJTcbt0FZg8+NJGi5JVG09NPy66O2Vh40nNV04WFuPjZs2or72YFxjhmiSYp6hKW0jPjWn4U82YtfT6Z6YiXutun24DvnGs5qj+7GraiM2Vu3C/jTyFNHGT8xp6lNs3PlUkhMoycW+Vt0+xLoC40mF6TGlCQW6kbADDV1qeO4grOrvrmIcix+uez0bgZAd/t5sRIYs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Du9KbD9eCt9ABOWLvdhQIHu6Voi9J1bi3S/kuRNLsdfvgq8n6/bMEZ0RxJMLghIY2rHv6Cq8c6QMvrvC+nVwlWSLaFl64ClphUu+J9/plXjnixWo7emHwwg21aJZ8YtMjWoix2A2oxuVhfoMZ+u8NpTbol21FlwO3Y99p5dix1cV2NxQgd0BOcg5LdiwMAibeSi4YSDsQN0ZN3Yek891aBW2nXYgPL0bax9qQSkDXSIiIpqMkq3U/A8nMGoI++Aj2uJW2grLcT27iasuf86AmOgnNm3x4sXD/YRNv/3WuJcoHLZrQ1WzsnvhzE4+xjXSl4P2HyR2tobhutuCgLq0j6UfRbP7h3sUI/2yTf9dyMqS/Ziu3Rrpt8PXmY92echm68Ly/JC+uNSQFYGLhfD1yr7U+k2WCIrmBuGeE4ZVBWbXs9N7H9lPsFetGByBY1YYtmismPT1FoR68uC7lIOB7C547ukF+mdrn1+tQpyqJzPSJ5+hKx9B9MBd0A3HoO32HkMkB81qFWSrvF+u8X0oQ9nwHn0S29oBz8N/wsv36UGvEg7LPrtzEVS/k/ou7fJdml8bfywDOfBdzEOg3yrB+g3kzuqCW/02Y8Tamajsd4uNe7ygOdGtplaWjGL+oqmK+YCmIqZ7Std400ragS5NHpGeBXi/vhyNVj9eqzqC8iQ98DR+DHSJbh82dIiYD2hqYrqndI03raS/GBVNDoM2HGsp04aZl85vSTrMnIiIiIiIKJMx0M0IFgS/q8DG//lLuf0C29qyYc3z4Zn7Q8NDuYmIiIiIiKYKBroZIqIGoF+3IjwURnnJEWzxNKH0llxYmIiIiIiIaHJhoJsRBuF0NWDXL/8Z/+OXf8RrP/PDxSCXiIiIiIimKAa6RERERERElFEY6BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZRQGukRERERERJRRGOgSERERERFRRmGgS0RERERERBmFgS4RERERERFlFAa6RERERERElFEY6BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZZRpixcvHjLuExEREREREd3RmpqajHupsUeXiIiIiIiI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TUVM95Su8aYV9ujeAvYCH15+tAGbGOQSERERERH95BjoEhERERERUUZhoEtEREREREQZhYEuERERERERZRQGukRERERERJRRGOgSERERERFRRmGgS0RERERERBmFgS4RERERERFlFAa6RERERERElFEY6BIREREREWmO472yMpTF3577DF3GFgmOvpe4fdlz+KzTeF507X1Of/z948YjiY6/r7/2ub0p34nGgYEuERERERGRycZPmtDUFL19io31m1GZEOwaQfHTwKfD20ZvH2JdgbGZaD9bj6qqKmDnfnlVMsexf2eVbAPUn203HqObwUCXiIiIiIgopWV45ZONEoHux0FTL+3x95/CrqotONT0imyRhprV2Ihd2H/U+Nuka+8Hsq/VWL1Q/jjTmrr3WJ757Lm4HuPOz/DccE9y/C26XYqe6pge5ui+o7f3UgTlkwMDXSIiIiIiojGVoCTaSyvB5Qc7gY3PrkO+8VBqXWg9I6++fx1WbwJ2HYgPH7twsLYeVTWrsGq+6tJtRao+3a69r2NzvfFHVME6fJjQo9yET+W9Yo5ZxPZUy+03IyH68fdfB96OPncIW6p24alJHOwy0CUiIiIiIkpF9Zg+vQtVW3813HPbdXg/6rERqx82HhhVO1qN4HTZ4xuBnR/EzN9F50Hsr6/C6pX5yL+/xHgwmeP46HV5161bIOHwGNRQaPln0+r0epvFst+Yh1vnY92zcqwpeqAnAwa6REREREREJrueNg3hfbwVLzQ14cO1I323as4tqkpQZPw9qs5WtEpoWuKU+w+r4cv12H94ZHCyFjRXrcYqFWQ6S2RL2d4cCBu04c2bPsUrK40HRnN0v4SoVdjydLphbhLasUxeDHSJiIiIiIhMYof4rsb+m5mzGmiV0DY6hHiZNny5vvagMQ93ZNjySBhdj9aAcTeq8zO8/jrSDlyPH9glgbgRPE/Q+Hqt7zwMdImIiIiIiFJahlfUysvYhQ+MS/8UjTGXdjTa8OXowlamYcuaAgmI5Z/W7+PWd/5kM+o3vRCzknNq+rDl2OBZN9xTPdrlkpSj76HydQnATcO1JxsGukRERERERKMqQonp0j/6XNr05q92fd8aO8zZNHw5ZtiyJvZ9NBJ0PrVzIz41LRw1KmPY8nDwrFHBummhKWxGZdy1foep6wI/vQvY9GnMcO3JhoEuERERERHRqPQFpTY+bgSbWrAqoe4fxugZFdp83oUlpt7V6PDlj/BRwrDlfJTEXGKoC5/9IXYhrLGMPWw5H+s+VKsq12Pzm3HHbwS5VVsPxazIPBkx0CUiIiIiIkpJXV9Wv2bur4bnqy7DKwe2oKp+MyoThgGr7aO9pfqlharmxy5btexp9dpd2FW/ES/E9Zpqw6IN2uWEsAVb0+5ZTT1sOVY+VtXEDb82glw1P3ky9+RGMdAlIiIiIiIyiVl1uawS+2sOoenDuGvmatevjQ4Djt2+9dmtWKVtNHJpoRgFq7BaxbNJLv+jDYvW5vDqC1VBBdPm/T++GfXy3+bH9b+fM+YNa7QVntU1e8cOVGMvZXQc76nhyiL2s8ttrPm8d6hpixcvHjLuo+m33xr3iChe2e8WG/ckrzQ1GfeI6FZQFWkU8xdNVcwHNBUx3U+Auq7v4/ux+oD5ure6rr3PofL1Enza9MqYQ521bWtX41B8AH+HGm9aYY8uERERERHRpGf0AKd1fd/j+EitqjzmEOfJi4EuERERERHRpKcPkx47eD2O98qewq5JvqryWBjoEhERERERTXbaZYWSz89Vw5S1+bba7Sngk6ZJv6ryWDhHlyhNnKNLdPtwjhYR8wFNTUz3lK7xphX26BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZRQGukRERERERJRRGOgSERERERFRRmGgS0RERERERBmFgS4RERERERFlFAa6RERERERElFEY6BIREREREVFGYaBLREREREREGYWBLhEREREREWUUBrpERERERESUURjoEhERERERUUZhoEtEREREREQZhYEuERERERERZRQGukRERERERJRRpi1evHjIuE9ERERERER0R2tqajLupcYeXSIiIiIiIsooDHSJiIiIiIgoo8QMXW767bfGPSKKV/a7xca99IZLEFH6ysrKjHvMXzR1MR/QVMR0T+kab1phjy4RERERERFlFAa6RERERERElEGA/x+pj6pN3U3iSQAAAABJRU5ErkJggg=="}}},{"cell_type":"code","source":"df_sample_trail_imu.head()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:37:36.788688Z","iopub.execute_input":"2023-11-05T17:37:36.789112Z","iopub.status.idle":"2023-11-05T17:37:36.806146Z","shell.execute_reply.started":"2023-11-05T17:37:36.789080Z","shell.execute_reply":"2023-11-05T17:37:36.804658Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Check track in detail\n\nWe can use plotly to see our model or ground truth like this. To see trafic, you should adjust map centor and scale.","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\ndef visualize_trafic(df, center, zoom=9):\n    fig = px.scatter_mapbox(df,\n                            \n                            # Here, plotly gets, (x,y) coordinates\n                            lat=\"LatitudeDegrees\",\n                            lon=\"LongitudeDegrees\",\n                            \n                            #Here, plotly detects color of series\n                            color=\"phone\",\n                            labels=\"phone\",\n                            \n                            zoom=zoom,\n                            center=center,\n                            height=600,\n                            width=800)\n    fig.update_layout(mapbox_style='stamen-terrain')\n    fig.update_layout(margin={\"r\": 0, \"t\": 0, \"l\": 0, \"b\": 0})\n    fig.update_layout(title_text=\"GPS trafic\")\n    fig.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:40:10.419990Z","iopub.execute_input":"2023-11-05T17:40:10.420494Z","iopub.status.idle":"2023-11-05T17:40:10.429098Z","shell.execute_reply.started":"2023-11-05T17:40:10.420452Z","shell.execute_reply":"2023-11-05T17:40:10.427683Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\ndf_sample_trail_gt['phone'] = 'pixel4'\ncenter = {\"lat\":37.423576, \"lon\":-122.094132}\nvisualize_trafic(df_sample_trail_gt, center)","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:45:32.816604Z","iopub.execute_input":"2023-11-05T17:45:32.817075Z","iopub.status.idle":"2023-11-05T17:45:32.898430Z","shell.execute_reply.started":"2023-11-05T17:45:32.817038Z","shell.execute_reply":"2023-11-05T17:45:32.897302Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\ndf_sample_trail_gt2 = pd.read_csv(DATA_PATH + \"train/2020-07-17-22-27-us-ca-mtv-sf-280/pixel4/ground_truth.csv\")\ndf_sample_trail_gt2['phone'] = 'pixel4'\n\n\n# Since plotly looks at the phoneName of the dataframe,\n# you can visualize multiple series of data by simply concatting dataframes.\ndf_sample_trail_gt3 = pd.concat([df_sample_trail_gt, df_sample_trail_gt2])\n\ncenter = {\"lat\":37.423576, \"lon\":-122.094132}\nvisualize_trafic(df_sample_trail_gt3, center)","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:44:30.569541Z","iopub.execute_input":"2023-11-05T17:44:30.570372Z","iopub.status.idle":"2023-11-05T17:44:30.676069Z","shell.execute_reply.started":"2023-11-05T17:44:30.570335Z","shell.execute_reply":"2023-11-05T17:44:30.675192Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Check large amounts of tracks","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\n#Download geojson file of US San Francisco Bay Area.\nr = requests.get(\"https://data.sfgov.org/api/views/wamw-vt4s/rows.json?accessType=DOWNLOAD\")\nr.raise_for_status()\n\n#get geojson from response\ndata = r.json()\n\n#get polygons that represents San Francisco Bay Area.\nshapes = []\nfor d in data[\"data\"]:\n    shapes.append(shapely.wkt.loads(d[8]))\n    \n#Convert list of porygons to geopandas dataframe.\ngdf_bayarea = pd.DataFrame()\n\n#I'll use only 6 and 7th object.\nfor shp in shapes[5:7]:\n    tmp = pd.DataFrame(shp, columns=[\"geometry\"])\n    gdf_bayarea = pd.concat([gdf_bayarea, tmp])\ngdf_bayarea = GeoDataFrame(gdf_bayarea)","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:47:26.043834Z","iopub.execute_input":"2023-11-05T17:47:26.044341Z","iopub.status.idle":"2023-11-05T17:47:36.942073Z","shell.execute_reply.started":"2023-11-05T17:47:26.044303Z","shell.execute_reply":"2023-11-05T17:47:36.940651Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\ncollection_names = [item.split(\"/\")[-1] for item in glob.glob(\"../input/smartphone-decimeter-2023/sdc2023/train/*\")]\n\ngdfs = []\nfor collection_name in collection_names:\n    gdfs_each_collectionName = []\n    csv_paths = glob.glob(f\"../input/smartphone-decimeter-2023/sdc2023/train/{collection_name}/*/ground_truth.csv\")\n    for csv_path in csv_paths:\n        df_gt = pd.read_csv(csv_path)\n        df_gt['collectionName'] = collection_name\n        df_gt[\"geometry\"] = [Point(lngDeg, latDeg) for lngDeg, latDeg in zip(df_gt[\"LongitudeDegrees\"], df_gt[\"LatitudeDegrees\"])]\n        gdfs_each_collectionName.append(GeoDataFrame(df_gt))\n    gdfs.append(gdfs_each_collectionName)","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:54:05.562190Z","iopub.execute_input":"2023-11-05T17:54:05.562674Z","iopub.status.idle":"2023-11-05T17:54:25.703291Z","shell.execute_reply.started":"2023-11-05T17:54:05.562639Z","shell.execute_reply":"2023-11-05T17:54:25.702188Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#GDFs Phone Tracks","metadata":{}},{"cell_type":"code","source":"colors = ['blue', 'green', 'purple', 'orange']\nfor collectionName, gdfs_each_collectionName in zip(collection_names, gdfs):\n    fig, axs = plt.subplots(1, 2, figsize=(15, 5))\n    gdf_bayarea.plot(figsize=(10,10), color='none', edgecolor='gray', zorder=3, ax=axs[0])\n    for i, gdf in enumerate(gdfs_each_collectionName):\n        g1 = gdf.plot(color=colors[i], ax=axs[0])\n        g1.set_title(f\"Phone track of {collectionName} with map\")\n        g2 = gdf.plot(color=colors[i], ax=axs[1])\n        g2.set_title(f\"Phone track of {collectionName}\")","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:54:32.242071Z","iopub.execute_input":"2023-11-05T17:54:32.242515Z","iopub.status.idle":"2023-11-05T17:56:42.428106Z","shell.execute_reply.started":"2023-11-05T17:54:32.242472Z","shell.execute_reply":"2023-11-05T17:56:42.426922Z"},"collapsed":true,"jupyter":{"outputs_hidden":true},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#CollectionName\n\n\"There are several tracks that have the same form of data with different collectionName. It is easy to understand the positional relationship by overlapping them. There are two roads extending from the northwest to the southeast, and they seem to run along those roads all the time, or occasionally go off those roads. The tracks wandering around the grid-like paths seem to be collected farther southeast than those paths.\"","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\nfig, ax = plt.subplots(figsize=(15, 5))\n\nfor collectionName, gdfs_each_collectionName in zip(collection_names, gdfs):   \n    for i, gdf in enumerate(gdfs_each_collectionName):\n        gdf.plot(color=colors[i], ax=ax, markersize=5, alpha=0.5)","metadata":{"execution":{"iopub.status.busy":"2023-11-05T17:57:29.792864Z","iopub.execute_input":"2023-11-05T17:57:29.793301Z","iopub.status.idle":"2023-11-05T17:59:04.900618Z","shell.execute_reply.started":"2023-11-05T17:57:29.793268Z","shell.execute_reply":"2023-11-05T17:59:04.899302Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#Is that a track above/below? For me it's just colorful scratchs. I'm scratching not tracking : )","metadata":{}},{"cell_type":"code","source":"#Nayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand\n#Oliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook\n\nall_tracks = pd.DataFrame()\n\nfor collectionName, gdfs_each_collectionName in zip(collection_names, gdfs):   \n    for i, gdf in enumerate(gdfs_each_collectionName):\n        all_tracks = pd.concat([all_tracks, gdf])\n        # Tracks they have same collectionName is also same\n        break\n        \nfig = px.scatter_mapbox(all_tracks,\n                            \n                        # Here, plotly gets, (x,y) coordinates\n                        lat=\"LatitudeDegrees\",\n                        lon=\"LongitudeDegrees\",\n                            \n                        #Here, plotly detects color of series\n                        color=\"collectionName\",\n                        labels=\"collectionName\",\n                            \n                        zoom=9,\n                        center={\"lat\":37.423576, \"lon\":-122.094132},\n                        height=600,\n                        width=800)\nfig.update_layout(mapbox_style='stamen-terrain')\nfig.update_layout(margin={\"r\": 0, \"t\": 0, \"l\": 0, \"b\": 0})\nfig.update_layout(title_text=\"GPS trafic\")\nfig.show()","metadata":{"execution":{"iopub.status.busy":"2023-11-05T18:08:20.237744Z","iopub.execute_input":"2023-11-05T18:08:20.238180Z","iopub.status.idle":"2023-11-05T18:08:21.789127Z","shell.execute_reply.started":"2023-11-05T18:08:20.238146Z","shell.execute_reply":"2023-11-05T18:08:21.787828Z"},"_kg_hide-input":true,"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![](https://i.imgflip.com/7rkp71.jpg)imgflip","metadata":{}},{"cell_type":"markdown","source":"#Acknowledgements:\n\nNayu T. S. https://www.kaggle.com/code/nayuts/let-s-visualize-dataset-to-understand \n\nOliver https://www.kaggle.com/code/ollibolli/simple-exploration-adapted-from-last-year/notebook","metadata":{}}]}