From 033fa8c0198ae5655295fd1c0b58510d51a586fb Mon Sep 17 00:00:00 2001 From: Nelofar Qulizada Date: Wed, 6 Aug 2025 19:33:18 +0000 Subject: [PATCH] Update environment.yml and revise bias correction notebook with h3 plot --- environment.yml | 1 + ...bias_correction_model_robust_revised.ipynb | 505 +++++------------- 2 files changed, 130 insertions(+), 376 deletions(-) diff --git a/environment.yml b/environment.yml index bf858a03..cc83a34d 100644 --- a/environment.yml +++ b/environment.yml @@ -6,6 +6,7 @@ dependencies: - pandas - geopandas - numpy + - h3 - matplotlib - statsmodels - scikit-learn diff --git a/notebooks/03_bias_correction_model_robust_revised.ipynb b/notebooks/03_bias_correction_model_robust_revised.ipynb index ff4b48d7..53143753 100644 --- a/notebooks/03_bias_correction_model_robust_revised.ipynb +++ b/notebooks/03_bias_correction_model_robust_revised.ipynb @@ -10,147 +10,185 @@ }, { "cell_type": "code", - "execution_count": 20, - "id": "2a545cf1-a95c-4168-abea-c9493cd99f28", + "execution_count": 4, + "id": "6edc606a-8b76-4d8f-be75-42b548b9b24b", "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'geopandas'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[20]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgeopandas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgpd\u001b[39;00m\n\u001b[32m 2\u001b[39m \u001b[38;5;28mprint\u001b[39m(gpd.__version__)\n", - "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'geopandas'" + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: h3 in /srv/conda/envs/notebook/lib/python3.10/site-packages (4.3.0)\n" ] } ], "source": [ - "import geopandas as gpd\n", - "print(gpd.__version__)" + "!pip install h3" ] }, { "cell_type": "code", - "execution_count": 19, - "id": "443d9825-47c6-42d9-a2fd-f3baf5e33e34", + "execution_count": 2, + "id": "258d4839-13e8-4581-8d40-8ed049f631c9", "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'geopandas'", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[19]\u001b[39m\u001b[32m, line 2\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpandas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpd\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m2\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgeopandas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mgpd\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mh3\u001b[39;00m\n\u001b[32m 4\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmatplotlib\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpyplot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mplt\u001b[39;00m\n", - "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'geopandas'" + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: h3 in /srv/conda/envs/notebook/lib/python3.10/site-packages (4.3.0)\n", + "Requirement already satisfied: matplotlib in /srv/conda/envs/notebook/lib/python3.10/site-packages (3.10.5)\n", + "Collecting seaborn\n", + " Using cached seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB)\n", + "Requirement already satisfied: pandas in /srv/conda/envs/notebook/lib/python3.10/site-packages (2.3.1)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (1.3.2)\n", + "Requirement already satisfied: cycler>=0.10 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (4.59.0)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (1.4.8)\n", + "Requirement already satisfied: numpy>=1.23 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (2.2.6)\n", + "Requirement already satisfied: packaging>=20.0 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (24.2)\n", + "Requirement already satisfied: pillow>=8 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (11.3.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (3.2.3)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from matplotlib) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from pandas) (2025.1)\n", + "Requirement already satisfied: tzdata>=2022.7 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from pandas) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/envs/notebook/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)\n", + "Using cached seaborn-0.13.2-py3-none-any.whl (294 kB)\n", + "Installing collected packages: seaborn\n", + "Successfully installed seaborn-0.13.2\n" ] } ], "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "import h3\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "from sklearn.cluster import KMeans\n", - "from sklearn.linear_model import LinearRegression\n", - "from sklearn.metrics import mean_squared_error\n", - "import time\n", - "import logging\n", - "import os" + "!pip install h3 matplotlib seaborn pandas" ] }, { "cell_type": "code", - "execution_count": 6, - "id": "7e9090b8-b4e5-4429-8029-cf71986629cc", + "execution_count": 3, + "id": "2f299d8c-49bb-4a93-8b82-a22c4aa317ba", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "/home/jovyan/BiasCorrectionCrowdsourcedData-cookbook/notebooks\n" + "ename": "ModuleNotFoundError", + "evalue": "No module named 'h3'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmatplotlib\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpyplot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mplt\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mseaborn\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msns\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mh3\u001b[39;00m\n\u001b[32m 6\u001b[39m \u001b[38;5;66;03m# Sample DataFrame structure: replace with your actual data loading\u001b[39;00m\n\u001b[32m 7\u001b[39m data = pd.DataFrame({\n\u001b[32m 8\u001b[39m \u001b[33m'\u001b[39m\u001b[33mhex_id\u001b[39m\u001b[33m'\u001b[39m: [\n\u001b[32m 9\u001b[39m \u001b[33m'\u001b[39m\u001b[33m8928308280fffff\u001b[39m\u001b[33m'\u001b[39m,\n\u001b[32m (...)\u001b[39m\u001b[32m 14\u001b[39m \u001b[33m'\u001b[39m\u001b[33mdemographic_similarity\u001b[39m\u001b[33m'\u001b[39m: [\u001b[32m0.8\u001b[39m, \u001b[32m0.6\u001b[39m, \u001b[32m0.9\u001b[39m, \u001b[32m0.4\u001b[39m]\n\u001b[32m 15\u001b[39m })\n", + "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'h3'" ] } ], "source": [ - "import os\n", - "print(os.getcwd())" + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import h3\n", + "\n", + "# Sample DataFrame structure: replace with your actual data loading\n", + "data = pd.DataFrame({\n", + " 'hex_id': [\n", + " '8928308280fffff',\n", + " '89283082807ffff',\n", + " '89283082877ffff',\n", + " '89283082803ffff',\n", + " ],\n", + " 'demographic_similarity': [0.8, 0.6, 0.9, 0.4]\n", + "})\n", + "\n", + "# Aggregate demographic similarity by hex_id (if needed)\n", + "agg = data.groupby('hex_id')['demographic_similarity'].mean().reset_index()\n", + "\n", + "# Get lat/lon of hex centers from hex IDs using h3\n", + "agg['lat'] = agg['hex_id'].apply(lambda x: h3.h3_to_geo(x)[0])\n", + "agg['lon'] = agg['hex_id'].apply(lambda x: h3.h3_to_geo(x)[1])\n", + "\n", + "# Plot demographic similarity on scatter plot\n", + "plt.figure(figsize=(10,8))\n", + "scatter = plt.scatter(\n", + " agg['lon'], agg['lat'], \n", + " c=agg['demographic_similarity'], \n", + " cmap='viridis', \n", + " s=100, edgecolor='k'\n", + ")\n", + "plt.colorbar(scatter, label='Demographic Similarity')\n", + "plt.title('Demographic Similarity by H3 Hex')\n", + "plt.xlabel('Longitude')\n", + "plt.ylabel('Latitude')\n", + "plt.grid(True)\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "6b58579d-dfca-4ba0-a179-4f287bc262ec", + "execution_count": 1, + "id": "cf95cecd-d865-4d03-9f28-3f29ce536279", "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['GRID_ID.1', 'STARTweek_stravaDATE_cast', 'GRID_ID',\n", - " 'ENDweek_stravaDATE_cast', 'SUM_total_trip_count', 'EcoCntr_weekly_SUM',\n", - " 'MAX_slopePct', 'STARTweek_Time', 'HEXid_weekID', 'HEXid_WeekID',\n", - " ...\n", - " 'Spatial Component 28', 'Spatial Component 29', 'Spatial Component 30',\n", - " 'Spatial Component 31', 'Spatial Component 32', 'Spatial Component 33',\n", - " 'Spatial Component 34', 'Spatial Component 35', 'Spatial Component 36',\n", - " 'Spatial Component 37'],\n", - " dtype='object', length=278)\n" + "ename": "ModuleNotFoundError", + "evalue": "No module named 'h3'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mModuleNotFoundError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[1]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mmatplotlib\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpyplot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mplt\u001b[39;00m\n\u001b[32m 3\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mseaborn\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01msns\u001b[39;00m\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mh3\u001b[39;00m\n\u001b[32m 6\u001b[39m \u001b[38;5;66;03m# Example: aggregate demographic similarity by hex_id\u001b[39;00m\n\u001b[32m 7\u001b[39m \u001b[38;5;66;03m# Assuming you have a DataFrame `data` with columns 'hex_id' and 'demographic_similarity'\u001b[39;00m\n\u001b[32m 9\u001b[39m agg = data.groupby(\u001b[33m'\u001b[39m\u001b[33mhex_id\u001b[39m\u001b[33m'\u001b[39m)[\u001b[33m'\u001b[39m\u001b[33mdemographic_similarity\u001b[39m\u001b[33m'\u001b[39m].mean().reset_index()\n", + "\u001b[31mModuleNotFoundError\u001b[39m: No module named 'h3'" ] } ], "source": [ - "print(truth_df.columns)" + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import h3\n", + "\n", + "# Example: aggregate demographic similarity by hex_id\n", + "# Assuming you have a DataFrame `data` with columns 'hex_id' and 'demographic_similarity'\n", + "\n", + "agg = data.groupby('hex_id')['demographic_similarity'].mean().reset_index()\n", + "\n", + "# Use h3 to get approximate lat/lon of hex centers\n", + "agg['lat'] = agg['hex_id'].apply(lambda x: h3.h3_to_geo(x)[0])\n", + "agg['lon'] = agg['hex_id'].apply(lambda x: h3.h3_to_geo(x)[1])\n", + "\n", + "plt.figure(figsize=(10,8))\n", + "sns.scatterplot(x='lon', y='lat', hue='demographic_similarity', data=agg, palette='viridis')\n", + "plt.title('Demographic Similarity by Hex')\n", + "plt.xlabel('Longitude')\n", + "plt.ylabel('Latitude')\n", + "plt.colorbar(label='Demographic Similarity')\n", + "plt.show()" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "6cb1fdf2-5ab6-451e-aaf6-ea43388e1850", + "execution_count": null, + "id": "443d9825-47c6-42d9-a2fd-f3baf5e33e34", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Index(['grid_id.1', 'startweek_stravadate_cast', 'grid_id',\n", - " 'endweek_stravadate_cast', 'sum_total_trip_count', 'ecocntr_weekly_sum',\n", - " 'max_slopepct', 'startweek_time', 'hexid_weekid', 'hexid_weekid',\n", - " ...\n", - " 'spatial_component_28', 'spatial_component_29', 'spatial_component_30',\n", - " 'spatial_component_31', 'spatial_component_32', 'spatial_component_33',\n", - " 'spatial_component_34', 'spatial_component_35', 'spatial_component_36',\n", - " 'spatial_component_37'],\n", - " dtype='object', length=278)\n" - ] - } - ], + "outputs": [], "source": [ - "print(truth_df.columns)" + "import pandas as pd\n", + "import geopandas as gpd\n", + "import h3\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from sklearn.cluster import KMeans\n", + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error\n", + "import time\n", + "import logging\n", + "import os" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "eeb68689", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAd7ZJREFUeJzt3Xd8FHX+x/HXJrvZ9N4IJfQaQIogWAARbNjwThFOsSGKenLCcaf+TvH0wHJgPbAcByoiVuwNFBAElSotUkNPCIT0nt3v748lK0sSCCEhZHk/H495JDvz3ZnPTDbkzXe+M2MxxhhEREREvJRPfRcgIiIiUpcUdkRERMSrKeyIiIiIV1PYEREREa+msCMiIiJeTWFHREREvJrCjoiIiHg1hR0RERHxago7IiIi4tUUds5Cs2bNwmKxuCd/f3/i4+MZMGAAkydPJj09vcJ7Jk6ciMViOantFBQUMHHiRBYtWnRS76tsW82bN2fIkCEntZ4TmTNnDs8//3ylyywWCxMnTqzV7dW27777jp49exIUFITFYuHjjz+utN3OnTs9ft7HTnW9n+vWreO2226jRYsW+Pv7ExwcTPfu3XnmmWc4fPhwnW67uo73WfAG1f0579mzhzFjxtC2bVsCAgKIjIykc+fOjBo1ij179rjbffnll2f870d16fN5drDWdwFSf2bOnEn79u0pLS0lPT2dpUuX8vTTT/Pvf/+bd999l0suucTd9s477+Syyy47qfUXFBTw+OOPA9C/f/9qv68m26qJOXPmsGHDBsaOHVth2fLly2nSpEmd11BTxhhuuOEG2rZty6effkpQUBDt2rU77nvuv/9+hg8fXmF+Xe7n66+/zpgxY2jXrh1//etf6dixI6WlpaxcuZJXXnmF5cuXM2/evDrbfnUd77Nwtti7dy/du3cnPDyccePG0a5dO7Kzs9m0aRPvvfceO3bsoGnTpoAr7PznP/9p8IFHn8+zh8LOWSwpKYmePXu6X19//fX85S9/4YILLmDo0KFs3bqVuLg4wPUHsa7/+BcUFBAYGHhatnUi5513Xr1u/0T279/P4cOHue666xg4cGC13tOsWbPTul/Lly/nnnvuYdCgQXz88cfY7Xb3skGDBjFu3Di+/vrr01ZPfSgsLCQgIKC+y6iW119/nUOHDvHLL7/QokUL9/xrr72Whx9+GKfTWaP1GmMoKio6446DPp9nGSNnnZkzZxrArFixotLl7733ngHM448/7p732GOPmWM/Lt99953p16+fiYyMNP7+/qZp06Zm6NChJj8/36SkpBigwjRy5EiP9a1atcpcf/31Jjw83MTHx1e5rcTERHPllVeajz76yHTu3NnY7XbTokUL88ILL1S6bykpKR7zFy5caACzcOFCY4wx/fr1q7S+coB57LHHPNaxfv16c/XVV5vw8HBjt9tN165dzaxZsyrdzpw5c8zDDz9sGjVqZEJCQszAgQPNb7/9VunxPtaSJUvMxRdfbIKDg01AQIDp06eP+fzzzyv8LI6eEhMTq1xf+c/i2Wefrdb2v/rqK3PxxReb0NBQExAQYNq3b28mTZrk0eaTTz4x5513ngkICDDBwcHmkksuMcuWLfNoM2TIEGO1Ws3u3burtV2Hw2Gefvpp065dO+Pn52diYmLMzTffbPbs2ePRLjEx0f05Olq/fv1Mv3793K+r+7M40WehuLjYPPHEE+66oqOjza233mrS09Mr1HXllVeaDz/80JxzzjnGbrebv/3tb1Xu77fffmuuvvpq07hxY2O3202rVq3MXXfdZQ4ePOjRrvznvWHDBjNs2DATGhpqYmNjzW233WaysrI82mZnZ5s777zTREZGmqCgIHPppZeazZs3V/p5Pta9995rfHx8TF5e3nHbjRw5stLjVf47B5h7773XTJ8+3bRv397YbDYzffp0Y4wxEydONL169TIREREmJCTEdOvWzfz3v/81TqfTvf5rrrnGNGvWzDgcjgrb7tWrl+nWrZv79csvv2wuvPBCExMTYwIDA01SUpJ5+umnTUlJyXH3wRjv+XxOmzbNdOnSxQQFBZng4GDTrl0789BDD1Vrn84m6tmRCq644gp8fX354Ycfqmyzc+dOrrzySi688EL+97//ER4ezr59+/j6668pKSmhUaNGfP3111x22WXccccd3HnnnQDExMR4rGfo0KEMGzaMu+++m/z8/OPWtXbtWsaOHcvEiROJj4/n7bff5oEHHqCkpITx48ef1D5OmzaNu+66i+3bt1erm3rz5s307duX2NhYXnzxRaKiopg9eza33norBw4cYMKECR7tH374Yc4//3z++9//kpOTw9/+9jeuuuoqkpOT8fX1rXI7ixcvZtCgQXTp0oUZM2Zgt9uZNm0aV111Fe+88w433ngjd955J127dmXo0KHuU1NH/6+0Kk6nk7Kysgrzrdbf/xmYMWMGo0aNol+/frzyyivExsayZcsWNmzY4G4zZ84cRowYweDBg3nnnXcoLi7mmWeeoX///nz33XdccMEFOBwOvv/+e3r06OE+9XEi99xzD6+99hr33XcfQ4YMYefOnfzjH/9g0aJFrF69mujo6Gqt51gn+lkc77PgdDq55pprWLJkCRMmTKBv377s2rWLxx57jP79+7Ny5UqPHovVq1eTnJzM//3f/9GiRQuCgoKqrGv79u306dOHO++8k7CwMHbu3MnUqVO54IILWL9+PTabzaP99ddfz4033sgdd9zB+vXreeihhwD43//+B7h6UK699lqWLVvGo48+yrnnnsuPP/7I5ZdfXq3j1KdPH/7zn/8wdOhQHnzwQfr06UNoaGiFdv/4xz/Iz8/ngw8+YPny5e75jRo1cn//8ccfs2TJEh599FHi4+OJjY0FXP9ujB49mmbNmgHw008/cf/997Nv3z4effRRAG6//XauueYavv/+e49T6b/99hu//PILL774oscxHD58OC1atMDPz49ff/2Vf/3rX/z222/u41IZb/l8zp07lzFjxnD//ffz73//Gx8fH7Zt28amTZtqVItXq++0JaffiXp2jDEmLi7OdOjQwf362N6WDz74wABm7dq1Va7j4MGDVf6Psnx9jz76aJXLjpaYmGgsFkuF7Q0aNMiEhoaa/Px8j307Uc+OMcZceeWVVfaIHFv3sGHDjN1ur/C/wMsvv9wEBga6/4ddvp0rrrjCo115b9ny5csr3V658847z8TGxprc3Fz3vLKyMpOUlGSaNGni/h/wyfTWVNXLVj4tWbLEGGNMbm6uCQ0NNRdccIHH/7SP5nA4TEJCguncubPH/7xzc3NNbGys6du3rzHGmLS0NAOYYcOGnbA+Y4xJTk42gBkzZozH/J9//tkA5uGHH3bPO9n/OVfnZ1HVZ+Gdd94xgPnwww895q9YscIAZtq0aR51+fr6ms2bN1dnlz04nU5TWlpqdu3aZQDzySefuJeV/z4888wzHu8ZM2aM8ff3d/+svvrqKwNU6O3817/+Va2eHafTaUaPHm18fHwMYCwWi+nQoYP5y1/+UuH36d57763wO1oOMGFhYebw4cPH3Z7D4TClpaXmn//8p4mKinLvR2lpqYmL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JEeLiYmhVatWBAcHM2XKFO68804uueQSRo0aRVxcHNu2bePXX3/l5ZdfxsfHh2eeeYYRI0YwZMgQRo8eTXFxMc8++yxZWVk89dRT7vX26dOH6dOnM2bMGHr06ME999xDp06dKC0tZc2aNbz22mskJSVx1VVX0a5dO+666y5eeuklfHx8uPzyy91XuzRt2pS//OUv7vXefPPN/OlPf2LMmDFcf/317Nq1i2eeeea4n9cTqeqzMGzYMN5++22uuOIKHnjgAXr16oXNZmPv3r0sXLiQa665huuuu+6kt9e+fXtatWrF3//+d4wxREZG8tlnn53S6YfBgwdz0UUXMWHCBPLz8+nZsyc//vhjlWHiWP/617/48ccfufHGGznnnHMICAggJSWFl19+mYyMDJ599ll3286dOwPw9NNPc/nll+Pr60uXLl3w8/Orcv1XXnklU6dOZfjw4dx1111kZGTw73//u8orCW+66SYefPBBbrrpJoqLiyuMlxk0aBB+fn7cdNNNTJgwgaKiIqZPn05mZma19tcbPp+jRo0iICCA888/n0aNGpGWlsbkyZMJCwvj3HPPrfH2vFL9jY2W+lJ+xVL55OfnZ2JjY02/fv3MpEmTKtw/xJiKV0gtX77cXHfddSYxMdHY7XYTFRVl+vXrZz799FOP9y1YsMB069bN2O32Su+zc+w9RSrbljG/38Pkgw8+MJ06dTJ+fn6mefPmZurUqRXev2XLFjN48GATGhpqYmJizP3332+++OKLCldjHT582PzhD38w4eHhxmKxVOs+O1dddZUJCwszfn5+pmvXrmbmzJkebcqvsHj//fc95pdfEXVs+8qU32cnKCjIBAQEmPPOO8989tlnla6vNq7GGjFihEf7L7/80vTr188EBQWZwMBA07FjR/P00097tPn4449N7969jb+/vwkKCjIDBw40P/74Y6XbX7t2rRk5cqRp1qyZ8fPzM0FBQaZbt27m0Ucf9fisld/HpG3btsZms5no6Gjzpz/9qcJ9TJxOp3nmmWdMy5Ytjb+/v+nZs6f5/vvvq7zapTo/i+N9FkpLS82///1v07VrV+Pv72+Cg4NN+/btzejRo83WrVvd7co/o9W1adMmM2jQIBMSEmIiIiLMH//4R7N79+4Kn72qflcqu/IwKyvL3H777SY8PNwEBgaaQYMGmd9++61aV2P99NNP5t577zVdu3Y1kZGRxtfX18TExJjLLrvMfPnllx5ti4uLzZ133mliYmLcx+vY++xU5n//+59p166dsdvtpmXLlmby5MlmxowZlV5BaYwxw4cPN4A5//zzK13fZ5995v65NG7c2Pz1r391X5V29O/68TTkz+cbb7xhBgwYYOLi4oyfn59JSEgwN9xwg1m3bl219v1sYjHmBJfdiIiIiDRgGrMjIiIiXk1hR0RERLyawo6IiIh4NYUdERER8WoKOyIiIuLVFHZERETEq9X7TQX37dvH3/72N7766isKCwtp27YtM2bMoEePHoDrjpiPP/44r732GpmZme479Xbq1Mm9juLiYsaPH88777xDYWEhAwcOZNq0aSe8BXg5p9PJ/v37CQkJOaWbtomIiMjpY4whNzeXhIQEj4cTV9aw3hw+fNgkJiaaW2+91fz8888mJSXFLFiwwGzbts3d5qmnnjIhISHmww8/NOvXrzc33nijadSokcnJyXG3ufvuu03jxo3N/PnzzerVq82AAQNM165dTVlZWbXq2LNnz3FvuqZJkyZNmjRpOnOnY2/ueKx6vang3//+d3788UeWLFlS6XJjDAkJCYwdO5a//e1vgKsXJy4ujqeffprRo0eTnZ1NTEwMb731FjfeeCPgejBb06ZN+fLLL7n00ktPWEd2djbh4eHs2bOH0NDQ2ttBERERqTM5OTk0bdqUrKys4z62p15PY3366adceuml/PGPf2Tx4sU0btyYMWPGMGrUKABSUlJIS0vzeNKt3W6nX79+LFu2jNGjR7Nq1SpKS0s92iQkJJCUlMSyZcsqDTvFxcUeT6XNzc0FIDQ0VGFHRESkgTnREJR6HaC8Y8cOpk+fTps2bfjmm2+4++67+fOf/8ybb74JQFpaGgBxcXEe74uLi3MvS0tLw8/Pj4iIiCrbHKv8QWnlU9OmTWt710REROQMUa9hx+l00r17dyZNmkS3bt0YPXo0o0aNYvr06R7tjk1sxpgTprjjtXnooYfIzs52T3v27Dm1HREREZEzVr2GnUaNGtGxY0ePeR06dGD37t0AxMfHA1TooUlPT3f39sTHx1NSUkJmZmaVbY5lt9vdp6x06kpERMS71euYnfPPP5/Nmzd7zNuyZQuJiYkAtGjRgvj4eObPn0+3bt0AKCkpYfHixTz99NMA9OjRA5vNxvz587nhhhsA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ffRR/vnPf3pcDt6rVy9WrlxJq1atGDVqFB06dODqq69m48aNPP/884Dr4ZnffPMNhw8f5txzz+UPf/gDAwcO5OWXX3av5/bbb2fkyJHccsst9OvXjxYtWjBgwICT2k+r1cqLL77Iq6++SkJCgjts3Xnnnfz3v/9l1qxZdO7cmX79+jFr1qx669mxmGNP2J2FqvuI+JO1evVq2Pqqe4Dy6uRUaDNaV2OJiFRDUVERKSkptGjRAn9/f/f8M/0OylK7qvocQPX/fmuAsoiINCgKHnKydBpLREREvJrCjoiIiHg1hR0RERHxago7IiIi4tUUdkRERMSrKeyIiIiIV1PYEREREa+msCMiIiJeTTcVFBGRBqO0tJT169ef1m127ty5wpO/pWFR2BERkQZj/fr1JH/zJB1axpyW7SXvOAj830k/5ic9PZ1//OMffPXVVxw4cICIiAi6du3KxIkT6dOnDxaLhXnz5nHttdfWSd3iSWFHREQalA4tY9zPHDxTXX/99ZSWlvLGG2/QsmVLDhw4wHfffcfhw4ervY7S0lL1KNUSjdkRERGpRVlZWSxdupSnn36aAQMGkJiYSK9evXjooYe48sorad68OQDXXXcdFovF/XrixImcc845/O9//6Nly5bY7XaMMXz99ddccMEFhIeHExUVxZAhQ9i+fbt7e3369OHvf/+7Rw0HDx7EZrOxcOFCAGbPnk3Pnj0JCQkhPj6e4cOHk56eflqOx5lAYUdERKQWBQcHExwczMcff0xxcXGF5StWrABg5syZpKamul8DbNu2jffee48PP/yQtWvXApCfn8+DDz7IihUr+O677/Dx8eG6667D6XQCMGLECN555x2MMe71vPvuu8TFxdGvXz8ASkpKeOKJJ/j111/5+OOPSUlJ4dZbb62jI3Dm0WksERGRWmS1Wpk1axajRo3ilVdeoXv37vTr149hw4bRpUsXYmJc443Cw8OJj4/3eG9JSQlvvfWWuw24TokdbcaMGcTGxrJp0yaSkpK48cYb+ctf/sLSpUu58MILAZgzZw7Dhw/Hx8fVp3H77be739+yZUtefPFFevXqRV5eHsHBwXVyHM4k6tkRERGpZddffz379+/n008/5dJLL2XRokV0796dWbNmHfd9iYmJHkEHYPv27QwfPpyWLVsSGhpKixYtANi9ezcAMTExDBo0iLfffhuA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U9gRERERr6awIyIiIl5NYUdERES8msKOiIiIeDWFHREREfFq1vou4Gz1wYefsnFHNp//lkKrVonMnft6fZckIiLildSzU0/y80to1OgSund/ivT03PouR0RExGsp7IiIiIhXU9gRERERr6awIyIiIl5NYUdERES8msKOiIiIeDWFHREREfFqCjsiIiLi1RR2RERExKsp7IiIiIhXU9gRERERr6awIyIiIl5NYUdERES8msKOiIiIeDWFHREREfFqCjsiIiLi1RR2RERExKsp7IiIiIhXU9gRERERr6awIyIiIl5NYUdERES8msKOiIiIeLUzJuxMnjwZi8XC2LFj3fOMMUycOJGEhAQCAgLo378/Gzdu9HhfcXEx999/P9HR0QQFBXH11Vezd+/e01y9iIiInKnOiLCzYsUKXnvtNbp06eIx/5lnnmHq1Km8/PLLrFixgvj4eAYNGkRubq67zdixY5k3bx5z585l6dKl5OXlMWTIEBwOx+neDRERETkD1XvYycvLY8SIEbz++utERES45xtjeP7553nkkUcYOnQoSUlJvPHGGxQUFDBnzhwAsrOzmTFjBlOmTOGSSy6hW7duzJ49m/Xr17NgwYL62iURERE5g9R72Ln33nu58sorueSSSzzmp6SkkJaWxuDBg93z7HY7/fr1Y9myZQCsWrWK0tJSjzYJCQkkJSW521SmuLiYnJwcj0lERES8k7U+Nz537lxWr17NihUrKixLS0sDIC4uzmN+XFwcu3btcrfx8/Pz6BEqb1P+/spMnjyZxx9//FTLFxERkQag3np29uzZwwMPPMDs2bPx9/evsp3FYvF4bYypMO9YJ2rz0EMPkZ2d7Z727NlzcsWLiIhIg1FvYWfVqlWkp6fTo0cPrFYrVquVxYsX8+KLL2K1Wt09Osf20KSnp7uXxcfHU1JSQmZmZpVtKmO32wkNDfWYRERExDvVW9gZOHAg69evZ+3ate6pZ8+ejBgxgrVr19KyZUvi4+OZP3+++z0lJSUsXryYvn37AtCjRw9sNptHm9TUVDZs2OBuIyIiIme3ehuzExISQlJSkse8oKAgoqKi3PPHjh3LpEmTaNOmDW3atGHSpEkEBgYyfPhwAMLCwrjjjjsYN24cUVFRREZGMn78eDp37lxhwLOIiIicnep1gPKJTJgwgcLCQsaMGUNmZia9e/fm22+/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0ybzwAMPmKCgILNr1676Lq1Offnll+aRRx4xH374oQHMvHnzPJY/9dRTJiQkxHz44Ydm/fr15sYbbzSNGjUyOTk57jZ33323ady4sZk/f75ZvXq1GTBggOnataspKytzt7nssstMUlKSWbZsmVm2bJlJSkoyQ4YMcS8vKyszSUlJZsCAAWb16tVm/vz5JiEhwdx33311fgxq6tJLLzUzZ840GzZsMGvXrjVXXnmladasmcnLy3O30fGr2qeffmq++OILs3nzZrN582bz8MMPG5vNZjZs2GCM0bGrrl9++cU0b97cdOnSxTzwwAPu+Tp+VXvsscdMp06dTGpqqntKT093L9exq38KO3WkV69e5u677/aY1759e/P3v/+9nio6/Y4NO06n08THx5unnnrKPa+oqMiEhYWZV155xRhjTFZWlrHZbGbu3LnuNvv27TM+Pj7m66+/NsYYs2nTJgOYn376yd1m+fLlBjC//fabMcYVunx8fMy+ffvcbd555x1jt9tNdnZ2nexvbUtPTzeAWbx4sTFGx68mIiIizH//+18du2rKzc01bdq0MfPnzzf9+vVzhx0dv+N77LHHTNeuXStdpmN3ZtBprDpQUlLCqlWrGDx4sMf8wYMHs2zZsnqqqv6lpKSQlpbmcVzsdjv9+vVzH5dVq1ZRWlrq0SYhIYGkpCR3m+XLlxMWFkbv3r3dbc477zzCwsI82iQlJXk8HO7SSy+luLiYVatW1el+1pbs7GwAIiMjAR2/k+FwOJg7dy75+fn06dNHx66a7r33Xq688kouueQSj/k6fie2detWEhISaNGiBcOGDWPHjh2Ajt2ZwmvuoHwmOXToEA6Ho8JT1+Pi4io8nf1sUr7vlR2XXbt2udv4+fkRERFRoU35+9PS0oiNja2w/tjYWI82x24nIiICPz+/BvEzMMbw4IMPcsEFF5CUlATo+FXH+vXr6dOnD0VFRQQHBzNv3jw6duzo/mOgY1e1uXPnsnr1alasWFFhmT57x9e7d2/efPNN2rZty4EDB3jyySfp27cvGzdu1LE7Qyjs1CGLxeLx2hhTYd7ZqCbH5dg2lbWvSZsz1X333ce6detYunRphWU6flVr164da9euJSsriw8//JCRI0eyePFi93Idu8rt2bOHBx54gG+//RZ/f/8q2+n4Ve7yyy93f9+5c2f69OlDq1ateOONNzjvvPMAHbv6ptNYdSA6OhpfX98KSTo9Pb1C6j6blF+dcLzjEh8fT0lJCZmZmcdtc+DAgQrrP3jwoEebY7eTmZlJaWnpGf8zuP/++/n0009ZuHAhTZo0cc/X8TsxPz8/WrduTc+ePZk8eTJdu3blhRde0LE7gVWrVpGenk6PHj2wWq1YrVYWL17Miy++iNVqddet41c9QUFBdO7cma1bt+qzd4ZQ2KkDfn5+9OjRg/nz53vMnz9/Pn379q2nqupfixYtiI+P9zguJSUlLF682H1cevTogc1m82iTmprKhg0b3G369OlDdnY2v/zyi7vNzz//THZ2tkebDRs2kJqa6m7z7bffYrfb6dGjR53uZ00ZY7jvvvv46KOP+P7772nRooXHch2/k2eMobi4WMfuBAYOHMj69etZu3ate+rZsycjRoxg7dq1tGzZUsfvJBQXF5OcnEyjRo302TtTnL6x0GeX8kvPZ8yYYTZt2mTGjh1rgoKCzM6dO+u7tDqVm5tr1qxZY9asWWMAM3XqVLNmzRr3JfdPPfWUCQsLMx999JFZv369uemmmyq9BLNJkyZmwYIFZvXq1ebiiy+u9BLMLl26mOXLl5vly5ebzp07V3oJ5sCBA83q1avNggULTJMmTc7oSzDvueceExYWZhYtWuRxCWtBQYG7jY5f1R566CHzww8/mJSUFLNu3Trz8MMPGx8fH/Ptt98aY3TsTtbRV2MZo+N3POPGjTOLFi0yO3bsMD/99JMZMmSICQkJcf97r2NX/xR26tB//vMfk5iYaPz8/Ez37t3dlxB7s4ULFxqgwjRy5EhjjOsyzMcee8zEx8cbu91uLrroIrN+/XqPdRQWFpr77rvPREZGmoCAADNkyBCze/dujzYZGRlmxIgRJiQkxISEhJgRI0aYzMxMjza7du0yV155pQkICDCRkZHmvvvuM0VFRXW5+6eksuMGmJkzZ7rb6PhV7fbbb3f/vsXExJiBAwe6g44xOnYn69iwo+NXtfL75thsNpOQkGCGDh1qNm7c6F6uY1f/LMYYUz99SiIiIiJ1T2N2RERExKsp7IiIiIhXU9gRERERr6awIyIiIl5NYUdERES8msKOiIiIeDWFHREREfFqCjsickZr3rw5zz//fJXL+/fvz9ixY09bPSLS8CjsiMgJvfLKK4SEhFBWVuael5eXh81m48ILL/Rou2TJEiwWC1u2bDndZZ6SDz/8kP79+xMWFkZwcDBdunThn//8J4cPHz6tdUycOJFzzjnntG5TxNsp7IjICQ0YMIC8vDxWrlzpnrdkyRLi4+NZsWIFBQUF7vmLFi0iISGBtm3b1kepNfLII49w4403cu655/LVV1+xYcMGpkyZwq+//spbb71V3+WJyClS2BGRE2rXrh0JCQksWrTIPW/RokVcc801tGrVimXLlnnMHzBgAOB6uvOECRNo3LgxQUFB9O7d22MdAMuWLeOiiy4iICCApk2b8uc//5n8/Pwqa5k5cyZhYWEeT4gu989//pPOnTtXmN+jRw8effTRStf3yy+/MGnSJKZMmcKzzz5L3759ad68OYMGDeLDDz9k5MiR7rbTp0+nVatW+Pn50a5dO48gtHPnTiwWC2vXrnXPy8rKwmKxuPd50aJFWCwWvvvuO3r27ElgYCB9+/Zl8+bNAMyaNYvHH3+cX3/9FYvFgsViYdasWVUeCxGpHoUdEamW/v37s3DhQvfrhQsX0r9/f/r16+eeX1JSwvLly91h57bbbuPHH39k7ty5rFu3jj/+8Y9cdtllbN26FYD169dz6aWXMnToUNatW8e7777L0qVLue+++yqt4d///jfjx4/nm2++YdCgQRWW33777WzatIkVK1a4561bt441a9Zw6623VrrOt99+m+DgYMaMGVPp8vDwcADmzZvHAw88wLhx49iwYQOjR4/mtttu8zgm1fXII48wZcoUVq5cidVq5fbbbwfgxhtvZNy4cXTq1InU1FRSU1O58cYbT3r9InKM+n4SqYg0DK+99poJCgoypaWlJicnx1itVnPgwAEzd+5c07dvX2OMMYsXLzaA2b59u9m2bZuxWCxm3759HusZOHCgeeihh4wxxtx8883mrrvu8li+ZMkS4+PjYwoLC40xxiQmJprnnnvO/P3vfzeNGjUy69at82h/7NO5L7/8cnPPPfe4X48dO9b079+/yv26/PLLTZcuXU64/3379jWjRo3ymPfHP/7RXHHFFcYYY1JSUgxg1qxZ416emZlpALNw4UJjjDELFy40gFmwYIG7zRdffGEA9/4+9thjpmvXriesR0SqTz07IlItAwYMID8/nxUrVrBkyRLatm1LbGws/fr1Y8WKFeTn57No0SKaNWtGy5YtWb16NcYY2rZtS3BwsHtavHgx27dvB2DVqlXMmjXLY/mll16K0+kkJSXFve0pU6bw6quvsnTp0kpPUx1t1KhRvPPOOxQVFVFaWsrbb7/t7jmpjDEGi8Vywv1PTk7m/PPP95h3/vnnk5ycfML3HqtLly7u7xs1agRAenr6Sa9HRKrHWt8FiEjD0Lp1a5o0acLChQvJzMykX79+AMTHx9OiRQt+/PFHFi5cyMUXXwyA0+nE19eXVatW4evr67Gu4OBgd5vRo0fz5z//ucL2mjVr5v7+wgsv5IsvvuC9997j73//+3HrvOqqq7Db7cybNw+73U5xcTHXX399le3btm3L0qVLKS0txWazHXfdx4aio4OSj4+Pe1650tLSStdz9HbK3+90Oo+7bRGpOfXsiEi1DRgwgEWLFrFo0SL69+/vnt+vXz+++eYbfvrpJ/d4nW7duuFwOEhPT6d169YeU3x8PADdu3dn48aNFZa3bt0aPz8/9/p79erF119/zaRJk3j22WePW6PVamXkyJHMnDmTmTNnMmzYMAIDA6tsP3z4cPLy8pg2bVqly7OysgDo0KEDS5cu9Vi2bNkyOnToAEBMTAwAqamp7uVHD1auLj8/PxwOx0m/T0Sqpp4dEam2AQMGcO+991JaWuru2QFX2LnnnnsoKipyh522bdsyYsQIbrnlFqZMmUK3bt04dOgQ33//PZ07d+aKK67gb3/7G+eddx733nsvo0aNIigoiOTkZObPn89LL73kse0+ffrw1Vdfcdlll2G1WvnLX/5SZZ133nmnO4T8+OOPx92n3r17M2HCBMaNG8e+ffu47rrrSEhIYNu2bbzyyitccMEFPPDAA/z1r3/lhhtuoHv37gwcOJDPPvuMjz76iAULFgAQEBDAeeedx1NPPUXz5s05dOgQ//d//3fSx7h58+akpKSwdu1amjRpQkhICHa7/aTXIyJHqd8hQyLSkJQPwm3fvr3H/D179hjAtGrVymN+SUmJefTRR03z5s2NzWYz8fHx5rrrrvMYZPzLL7+YQYMGmeDgYBMUFGS6dOli/vWvf7mXlw9QLrd48WITFBRkXnjhBWNMxQHK5S688ELTsWPHau/bu+++ay666CITEhLiruOf//ynyczMdLeZNm2aadmypbHZbKZt27bmzTff9FjHpk2bzHnnnWcCAgLMOeecY7799ttKBygfvc41a9YYwKSkpBhjjCkqKjLXX3+9CQ8PN4CZOXNmtfdBRCpnMeaoE8wiIl7AGEP79u0ZPXo0Dz74YH2XIyL1TKexRMSrpKen89Zbb7Fv3z5uu+22+i5HRM4ACjsi4lXi4uKIjo7mtddeIyIior7LEZEzgMKOiHgVnZkXkWPp0nMRERHxago7IiIi4tUUdkRERMSrKeyIiIiIV1PYEREREa+msCMiIiJeTWFHREREvJrCjoiIiHg1hR0RERHxav8PUjA5lWUhbRAAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", @@ -167,295 +205,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "e3148bd8-78f2-45a0-91b6-3e25c4d74d01", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "'GRID_ID.1'\n", - "'STARTweek_stravaDATE_cast'\n", - "'GRID_ID'\n", - "'ENDweek_stravaDATE_cast'\n", - "'SUM_total_trip_count'\n", - "'EcoCntr_weekly_SUM'\n", - "'MAX_slopePct'\n", - "'STARTweek_Time'\n", - "'HEXid_weekID'\n", - "'HEXid_WeekID'\n", - "'ENDweek_Time'\n", - "'week_id'\n", - "'week_start'\n", - "'_GRID_JOIN_'\n", - "'OBJECTID *'\n", - "'Shape *'\n", - "'SOURCE_ID'\n", - "'GRID_ID_cov'\n", - "'slopePct'\n", - "'TrailCounter'\n", - "'SqMeters'\n", - "'ASOSID'\n", - "'AR_asosID_hexID'\n", - "'Slope_10m_MEAN'\n", - "'OBJECTID'\n", - "'GRID_ID.1_cov'\n", - "'TIMESTEP_stravaDATE_cast'\n", - "'STARTTIME_stravaDATE_cast'\n", - "'ENDTIME_stravaDATE_cast'\n", - "'SUM_EcoCounter_WeeklyAggregation'\n", - "'SUM_total_trip_count_cov'\n", - "'SUM_ride_count'\n", - "'MAX_activity_type'\n", - "'MAX_slopePct_cov'\n", - "'SUM_forward_people_count'\n", - "'SUM_reverse_people_count'\n", - "'SUM_forward_commute_trip_count'\n", - "'SUM_reverse_commute_trip_count'\n", - "'SUM_forward_leisure_trip_count'\n", - "'SUM_reverse_leisure_trip_count'\n", - "'SUM_ebike_ride_count'\n", - "'SUM_forward_morning_trip_count'\n", - "'SUM_reverse_morning_trip_count'\n", - "'SUM_forward_midday_trip_count'\n", - "'SUM_reverse_midday_trip_count'\n", - "'SUM_forward_evening_trip_count'\n", - "'SUM_reverse_evening_trip_count'\n", - "'SUM_forward_male_people_count'\n", - "'SUM_reverse_male_people_count'\n", - "'SUM_forward_female_people_count'\n", - "'SUM_reverse_female_people_count'\n", - "'SUM_forward_18_34_people_count'\n", - "'SUM_reverse_18_34_people_count'\n", - "'SUM_forward_35_54_people_count'\n", - "'SUM_reverse_35_54_people_count'\n", - "'SUM_forward_55_64_people_count'\n", - "'SUM_reverse_55_64_people_count'\n", - "'MIN_slopePct'\n", - "'hexid_weekid_join'\n", - "'ASOS_ID'\n", - "'HexIDstation'\n", - "'ASOS ID WeekID Join'\n", - "'asosID_encodeSTEP'\n", - "'TIMESTEP_weekID'\n", - "'STARTTIME_Weekday'\n", - "'ENDTIME_Weekday'\n", - "'station'\n", - "'MAX_max_temp_f'\n", - "'MIN_min_temp_f'\n", - "'MAX_max_dewpoint_f'\n", - "'MIN_min_dewpoint_f'\n", - "'SUM_precip_in'\n", - "'MEAN_avg_wind_speed_kts'\n", - "'MEAN_avg_wind_drct'\n", - "'MIN_min_rh'\n", - "'MEAN_avg_rh'\n", - "'MAX_max_rh'\n", - "'SUM_snow_in'\n", - "'MIN_min_feel'\n", - "'MEAN_avg_feel'\n", - "'MAX_max_feel'\n", - "'MAX_max_wind_speed_kts'\n", - "'MAX_max_wind_gust_kts'\n", - "'MAX_climo_high_f'\n", - "'MIN_climo_low_f'\n", - "'SUM_climo_precip_in'\n", - "'Location of Ecocounter'\n", - "'COUNT'\n", - "'MEAN_forward_average_speed_meters_per_second'\n", - "'MEAN_reverse_average_speed_meters_per_second'\n", - "'SUM_forward_overnight_trip_count'\n", - "'SUM_reverse_overnight_trip_count'\n", - "'SUM_forward_unspecified_people_count'\n", - "'SUM_reverse_unspecified_people_count'\n", - "'SUM_forward_65_plus_people_count'\n", - "'SUM_reverse_65_plus_people_count'\n", - "'OBJECTID.1'\n", - "'HEX GRID_ID'\n", - "'Slope Pct Category'\n", - "'Slope MAXpct'\n", - "'HEX Area ACRES'\n", - "'Count LC Polys 2023'\n", - "'Minor LC Name'\n", - "'Major LC Name'\n", - "'Minority LandClass Pct'\n", - "'Majority LandClass Pct'\n", - "'Replica OSMfeature COUNT'\n", - "'SUM_AADT_replicaOSM'\n", - "'MEAN_MPH_replicaOSM'\n", - "'pMEAN_length'\n", - "'MINOR RoadClass replica'\n", - "'MAJOR RoadClass replica'\n", - "'MINOR RoadClass Pct'\n", - "'MAJOR RoadClass Pct'\n", - "'Topo Rough Index MEAN'\n", - "'Topo Rough Index MEDIAN'\n", - "'latWGS84'\n", - "'longWGS84'\n", - "'UTMnad83z15_E'\n", - "'UTMnad83z15_N'\n", - "'AADT 2023 ArDOT sum'\n", - "'AADT mean 2023 ArDOT'\n", - "'ArDOT Sum Lgth 2023'\n", - "'Dist2Park Meters'\n", - "'Nearest Park Name'\n", - "'Distance to K12 Meters'\n", - "'Nearest K12 School'\n", - "'Distance Paved Trail Meters'\n", - "'Nearest Paved Trail 2023'\n", - "'Meters from Transit Stop'\n", - "'Nearest Transit Stop'\n", - "'Sum of Sidewalks Meters'\n", - "'Join_Count'\n", - "'TAZ_ID'\n", - "'COUNTY'\n", - "'HasData'\n", - "'sourceCountry'\n", - "'2024 Median Household Income'\n", - "'2024 Median Household Income: Index'\n", - "'2029 Median Household Income'\n", - "'2029 Median Household Income: Index'\n", - "'2022 Median HH Income (ACS 5-Yr)'\n", - "'2024 Diversity Index'\n", - "'2024 White Population'\n", - "'2024 White Population: Percent'\n", - "'2024 Black Population'\n", - "'2024 Black Population: Percent'\n", - "'2024 American Indian Population'\n", - "'2024 American Indian Population: Percent'\n", - "'2024 Asian Population'\n", - "'2024 Asian Population: Percent'\n", - "'2024 Pacific Islander Population'\n", - "'2024 Pacific Islander Population: Percent'\n", - "'2024 Other Race Population'\n", - "'2024 Other Race Population: Percent'\n", - "'2024 Population of 2+ Races'\n", - "'2024 Population of 2+ Races: Percent'\n", - "'2010 Diversity Index'\n", - "'2022 Race: American Indian (ACS 5-Yr)'\n", - "'2022 Race: American Indian (ACS 5-Yr): Percent'\n", - "'2022 Race: Asian (ACS 5-Yr)'\n", - "'2022 Race: Asian (ACS 5-Yr): Percent'\n", - "'2022 Race: Native Hawaiian (ACS 5-Yr)'\n", - "'2022 Race: Native Hawaiian (ACS 5-Yr): Percent'\n", - "'2022 Race: Other (ACS 5-Yr)'\n", - "'2022 Race: Other (ACS 5-Yr): Percent'\n", - "'2022 Race: Two or More (ACS 5-Yr)'\n", - "'2022 Race: Two or More (ACS 5-Yr): Percent'\n", - "'2029 White Population'\n", - "'2029 White Population: Percent'\n", - "'2029 Black Population'\n", - "'2029 Black Population: Percent'\n", - "'2029 American Indian Population'\n", - "'2029 American Indian Population: Percent'\n", - "'2029 Asian Population'\n", - "'2029 Asian Population: Percent'\n", - "'2029 Pacific Islander Population'\n", - "'2029 Pacific Islander Population: Percent'\n", - "'2029 Other Race Population'\n", - "'2029 Other Race Population: Percent'\n", - "'2029 Diversity Index'\n", - "'2022 Pop 25+: HS Diploma (ACS 5-Yr)'\n", - "'2022 Pop 25+: HS Diploma (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Some College (ACS 5-Yr)'\n", - "'2022 Pop 25+: Some College (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Assoc Degree (ACS 5-Yr)'\n", - "'2022 Pop 25+: Assoc Degree (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Bach Degree (ACS 5-Yr)'\n", - "'2022 Pop 25+: Bach Degree (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Master`s Deg (ACS 5-Yr)'\n", - "'2022 Pop 25+: Master`s Deg (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Prof Sch Deg (ACS 5-Yr)'\n", - "'2022 Pop 25+: Prof Sch Deg (ACS 5-Yr): Percent'\n", - "'2022 Pop 25+: Doctorate (ACS 5-Yr)'\n", - "'2022 Pop 25+: Doctorate (ACS 5-Yr): Percent'\n", - "'2024 Pop Age 25+: High School Diploma'\n", - "'2024 Pop Age 25+: High School Diploma: Percent'\n", - "'2024 Pop Age 25+: GED'\n", - "'2024 Pop Age 25+: GED: Percent'\n", - "'2020 Total Population'\n", - "'2024 Total Population'\n", - "'2024 Population Density'\n", - "'2022 Civilian Pop 18+: Veteran (ACS 5-Yr)'\n", - "'2022 Civilian Pop 18+: Veteran (ACS 5-Yr): Percent'\n", - "'2022 Civilian Pop 18+: Nonveteran (ACS 5-Yr)'\n", - "'2022 Civilian Pop 18+: Nonveteran (ACS 5-Yr): Percent'\n", - "'2022 Workers 16+: Bicycle (ACS 5-Yr)'\n", - "'2022 Workers 16+: Bicycle (ACS 5-Yr): Percent'\n", - "'2022 Workers 16+: Walked (ACS 5-Yr)'\n", - "'2022 Workers 16+: Walked (ACS 5-Yr): Percent'\n", - "'2022 Commute to Work: 15-19 Min (ACS 5-Yr)'\n", - "'2022 Commute to Work: 15-19 Min (ACS 5-Yr): Percent'\n", - "'2022 Commute to Work: 10-14 Min (ACS 5-Yr)'\n", - "'2022 Commute to Work: 10-14 Min (ACS 5-Yr): Percent'\n", - "'2022 Commute to Work: 5-9 Min (ACS 5-Yr)'\n", - "'2022 Commute to Work: 5-9 Min (ACS 5-Yr): Percent'\n", - "'2022 Commute to Work: <5 Min (ACS 5-Yr)'\n", - "'2022 Commute to Work: <5 Min (ACS 5-Yr): Percent'\n", - "'2022 Avg Commute to Work (ACS 5-Yr)'\n", - "'2024 Median Age'\n", - "'2024 Median Age: Index'\n", - "'2024 Senior Population'\n", - "'2024 Senior Population: Percent'\n", - "'2020 Multiple Races Pop 35-39'\n", - "'2020 Multiple Races Pop 35-39: Percent'\n", - "'2024 Population Age 0-4'\n", - "'2024 Population Age 0-4: Percent'\n", - "'2022 Poverty Index (ACS 5-Yr)'\n", - "'2022 HHs: Inc Below Poverty Level (ACS 5-Yr)'\n", - "'2022 HHs: Inc Below Poverty Level (ACS 5-Yr): Percent'\n", - "'2022 HHs w/Public Assist Income (ACS 5-Yr)'\n", - "'2022 HHs w/Public Assist Income (ACS 5-Yr): Percent'\n", - "'2022 Race: White (ACS 5-Yr)'\n", - "'2022 Race: White (ACS 5-Yr): Percent'\n", - "'2022 Race: Black (ACS 5-Yr)'\n", - "'2022 Race: Black (ACS 5-Yr): Percent'\n", - "'GRID_ID.2'\n", - "'Trail Counter Name'\n", - "'Sq_MetersAREA'\n", - "'Shape_Length'\n", - "'Shape_Area'\n", - "'Spatial Component 1'\n", - "'Spatial Component 2'\n", - "'Spatial Component 3'\n", - "'Spatial Component 4'\n", - "'Spatial Component 5'\n", - "'Spatial Component 6'\n", - "'Spatial Component 7'\n", - "'Spatial Component 8'\n", - "'Spatial Component 9'\n", - "'Spatial Component 10'\n", - "'Spatial Component 11'\n", - "'Spatial Component 12'\n", - "'Spatial Component 13'\n", - "'Spatial Component 14'\n", - "'Spatial Component 15'\n", - "'Spatial Component 16'\n", - "'Spatial Component 17'\n", - "'Spatial Component 18'\n", - "'Spatial Component 19'\n", - "'Spatial Component 20'\n", - "'Spatial Component 21'\n", - "'Spatial Component 22'\n", - "'Spatial Component 23'\n", - "'Spatial Component 24'\n", - "'Spatial Component 25'\n", - "'Spatial Component 26'\n", - "'Spatial Component 27'\n", - "'Spatial Component 28'\n", - "'Spatial Component 29'\n", - "'Spatial Component 30'\n", - "'Spatial Component 31'\n", - "'Spatial Component 32'\n", - "'Spatial Component 33'\n", - "'Spatial Component 34'\n", - "'Spatial Component 35'\n", - "'Spatial Component 36'\n", - "'Spatial Component 37'\n" - ] - } - ], + "outputs": [], "source": [ "for col in truth_df.columns:\n", " print(f\"'{col}'\")"