{ "cells": [ { "cell_type": "markdown", "id": "d9cd4667", "metadata": {}, "source": [ "# TRACAB\n", "\n", "- [Load local files](#load-local-files)\n", "- [Load remote files](#load-remote-files)\n", "\n", "## Load local files" ] }, { "cell_type": "code", "execution_count": 1, "id": "495a3f90", "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>period_id</th>\n", " <th>timestamp</th>\n", " <th>frame_id</th>\n", " <th>ball_state</th>\n", " <th>ball_owning_team_id</th>\n", " <th>ball_x</th>\n", " <th>ball_y</th>\n", " <th>ball_z</th>\n", " <th>away_19_x</th>\n", " <th>away_19_y</th>\n", " <th>away_19_d</th>\n", " <th>away_19_s</th>\n", " <th>home_19_x</th>\n", " <th>home_19_y</th>\n", " <th>home_19_d</th>\n", " <th>home_19_s</th>\n", " <th>away_1337_x</th>\n", " <th>away_1337_y</th>\n", " <th>away_1337_d</th>\n", " <th>away_1337_s</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>1</td>\n", " <td>0.00</td>\n", " <td>100</td>\n", " <td>alive</td>\n", " <td>home</td>\n", " <td>-27.0</td>\n", " <td>25.0</td>\n", " <td>0.0</td>\n", " <td>8889.0</td>\n", " <td>-666.0</td>\n", " <td>NaN</td>\n", " <td>0.55</td>\n", " <td>-1234.0</td>\n", " <td>-294.0</td>\n", " <td>None</td>\n", " <td>0.07</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>2</td>\n", " <td>0.00</td>\n", " <td>200</td>\n", " <td>alive</td>\n", " <td>home</td>\n", " <td>-27.0</td>\n", " <td>25.0</td>\n", " <td>0.0</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>-1234.0</td>\n", " <td>-294.0</td>\n", " <td>None</td>\n", " <td>0.07</td>\n", " <td>-8889.0</td>\n", " <td>-666.0</td>\n", " <td>NaN</td>\n", " <td>0.55</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>2</td>\n", " <td>0.08</td>\n", " <td>202</td>\n", " <td>alive</td>\n", " <td>home</td>\n", " <td>-27.0</td>\n", " <td>25.0</td>\n", " <td>0.0</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>NaN</td>\n", " <td>-1234.0</td>\n", " <td>-294.0</td>\n", " <td>None</td>\n", " <td>0.07</td>\n", " <td>-8889.0</td>\n", " <td>-666.0</td>\n", " <td>NaN</td>\n", " <td>0.55</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " period_id timestamp frame_id ball_state ball_owning_team_id ball_x \\\n", "0 1 0.00 100 alive home -27.0 \n", "1 2 0.00 200 alive home -27.0 \n", "2 2 0.08 202 alive home -27.0 \n", "\n", " ball_y ball_z away_19_x away_19_y away_19_d away_19_s home_19_x \\\n", "0 25.0 0.0 8889.0 -666.0 NaN 0.55 -1234.0 \n", "1 25.0 0.0 NaN NaN NaN NaN -1234.0 \n", "2 25.0 0.0 NaN NaN NaN NaN -1234.0 \n", "\n", " home_19_y home_19_d home_19_s away_1337_x away_1337_y away_1337_d \\\n", "0 -294.0 None 0.07 NaN NaN NaN \n", "1 -294.0 None 0.07 -8889.0 -666.0 NaN \n", "2 -294.0 None 0.07 -8889.0 -666.0 NaN \n", "\n", " away_1337_s \n", "0 NaN \n", "1 0.55 \n", "2 0.55 " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from kloppy import tracab\n", "\n", "dataset = tracab.load(\n", " meta_data=\"../../kloppy/tests/files/tracab_meta.xml\",\n", " raw_data=\"../../kloppy/tests/files/tracab_raw.dat\",\n", " \n", " # Optional arguments\n", " sample_rate=1/2,\n", " limit=10,\n", " coordinates=\"tracab\",\n", " only_alive=True\n", ")\n", "\n", "# Because this is a test dataset the output contains some garbage\n", "dataset.to_df().head()" ] }, { "cell_type": "markdown", "id": "e4709635", "metadata": {}, "source": [ "## Load remote files\n", "\n", "Kloppy supports remote files through `fsspec` FileSystem under the hood. This allows you to work with files in AWS S3, Google Cloud, Azure Blob, HDFS, FTP, and SFTP without extra tools.\n", "For example you can pass:\n", "- Individual s3 file paths: (e.g `meta_data=s3://.../tracab_meta.xml`)\n", "\n", "Note: Kloppy might throw an the first time to help you identify missing cloud specific dependencies like `s3fs`. " ] }, { "cell_type": "code", "execution_count": null, "id": "fc8e0484", "metadata": {}, "outputs": [], "source": [ "from kloppy import tracab\n", "\n", "dataset = tracab.load(\n", " meta_data=\"s3://.../tracab_meta.xml\",\n", " raw_data=\"s3://.../tracab_raw.dat\",\n", " \n", " # Optional arguments\n", " sample_rate=1/2,\n", " limit=10,\n", " coordinates=\"tracab\",\n", " only_alive=True\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "kloppy-venv", "language": "python", "name": "kloppy-venv" }, "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.10.6" } }, "nbformat": 4, "nbformat_minor": 5 }