Skip to content

Instantly share code, notes, and snippets.

@Hagellach37
Last active February 10, 2024 12:24
Show Gist options
  • Save Hagellach37/5facfb821df1c1551fef8ee30431778b to your computer and use it in GitHub Desktop.
Save Hagellach37/5facfb821df1c1551fef8ee30431778b to your computer and use it in GitHub Desktop.
OSM Newcomer Changeset Analysis - Workflow
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "bd012274-d52c-48c8-97a9-2ebbc156966a",
"metadata": {},
"source": [
"# OSM Newcomer Changeset Analysis - Workflow"
]
},
{
"cell_type": "markdown",
"id": "8226f40e-bdd6-4b10-ad70-526c0705d64a",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## Data Preparation\n",
"\n",
"Extract CSV files from OSM Changeset database.\n",
"\n",
"First, we need to find out how many *new* OSM users actually mapped something in 2023. \n",
"\n",
"```\n",
"\\copy (select user_id, first_timestamp, first_changeset_id from (select user_id, min(created_at) as first_timestamp, min(id) as first_changeset_id from osm_changeset group by user_id) as foo where first_timestamp >= '2023-01-01') TO 'new_osm_users_2023.csv' WITH CSV DELIMITER ',' HEADER\n",
"```\n",
"\n",
"Then, we will compare this to the overall number of OSM user who contributed in 2023.\n",
"\n",
"```\n",
"\\copy (select date_trunc('day', created_at) as day, count(distinct user_id) from osm_changeset where created_at >= '2023-01-01' group by day) TO 'osm_user_activity_2023.csv' WITH CSV DELIMITER ',' HEADER\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "b2595ce9-2320-448b-aa58-6a1207ffe73d",
"metadata": {},
"source": [
"## How many new users join OSM every day?"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6f20cb94-cba0-451a-a48e-173f720f41f1",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import datetime"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "7909df1c-4d25-4c36-8dc7-0fef806fec80",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"total number of new users: 132423\n",
"average daily number of users: 5905.932203389831\n",
"average daily number of NEW users: 448.8915254237288\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1sAAAHDCAYAAADSlgACAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACV1klEQVR4nOzdd1gUV9sG8HvpCytFRIoiImIBFGs22Dt2jRq7Yo9GTcREDbGXaNSoMYoajb3ElmgssRB7RYMNa+zgq6BGBeltvj/8drLD7gKrwFLu33Vx6c48e/bMOTNn59k5OysTBEEAERERERER5SojQ1eAiIiIiIioKGKyRURERERElAeYbBEREREREeUBJltERERERER5gMkWERERERFRHmCyRURERERElAeYbBEREREREeUBJltERERERER5gMkWERERERFRHmCyRURUQE2bNg0ymey9ntukSRM0adJEfPzo0SPIZDKsW7cudyqXTwYMGIDy5csbuhpERETvhckWEREZ1NOnTzFt2jRcuXLF0FXRsG/fPrRu3Rr29vawsLBApUqV8PXXX+Pff//VGr937140btwYpUuXhqWlJSpUqIDu3bvj4MGDYowq8ZXJZJg1a5bWcvr06QOZTAaFQpEn20VERPmDyRYRURF0+PBhHD582NDVyJGnT59i+vTpWpOtVatW4c6dO/lfKQBff/01OnTogKioKEyYMAFLly5FixYtsHTpUvj6+mrU64cffkDHjh0hk8kQFBSERYsWoWvXrrh79y62bt2qUb6FhQV+/fVXjeXx8fH4448/YGFhkWfbRkRE+cPE0BUgIqLcZ2ZmZugq5ApTU1ODvO6vv/6KBQsWoEePHti8eTOMjY3FdQMGDEDTpk3x6aef4tKlSzAxMUFaWhpmzpyJli1bak1ynz9/rrGsbdu2+P3333H16lX4+vqKy//44w+kpKSgdevWOHr0aN5sYBGQkZGBlJQUJqVEVKDxyhYRUQFw+vRp1K1bFxYWFvDw8MDPP/+sNW7t2rVo1qwZSpcuDXNzc3h5eWH58uUacZm/s6WtHJlMhsuXL2usmz17NoyNjfG///1P5/MfP36Mzz//HJUrV4ZcLoe9vT0+/fRTPHr0SCP2zZs3CAwMRPny5WFubo6yZcuif//+ePnyJY4fP466desCAAYOHChOr1N9t0z9O1upqakoWbIkBg4cqPEasbGxsLCwwNdffy0uS05OxtSpU1GxYkWYm5vD1dUV48ePR3Jyss7tUpk+fTrs7OywcuVKSaIFAB999BEmTJiA8PBw7Ny5EwDw8uVLxMbGon79+lrLK126tMYyPz8/uLu7Y8uWLZLlmzdvRuvWrVGyZMls6wm8ayOFQoGIiAi0b98eCoUCZcqUQXBwMAAgPDwczZo1g5WVFdzc3DRe79WrV/j6669RrVo1KBQKWFtbo02bNrh69aok7vjx45DJZNi2bRu+/fZbODk5wcrKCh07dkRkZKQktkmTJvDx8UFYWBjq1asHuVwOd3d3rFixQqP+Oe0nmUyGUaNGYfPmzfD29oa5ubk4PXPr1q2oXbs2SpQoAWtra1SrVg2LFy/OUfsREeUlJltERAYWHh6OVq1a4fnz55g2bRoGDhyIqVOnYteuXRqxy5cvh5ubG7799lssWLAArq6u+Pzzz8UT65zq1q0b5HI5Nm/erLFu8+bNaNKkCcqUKaPz+RcvXsTZs2fRs2dP/PTTTxg+fDiOHDmCJk2aICEhQYyLi4tDw4YNsWTJErRq1QqLFy/G8OHDcfv2bTx58gRVq1bFjBkzAADDhg3Dxo0bsXHjRjRq1EjjNU1NTfHJJ59g9+7dSElJkazbvXs3kpOT0bNnTwDvrnp07NgRP/zwAzp06IAlS5agc+fOWLRoEXr06JFl29y9exd37txBp06dYG1trTWmf//+AN59pwt4l0zJ5XLs3bsXr169yrJ8db169cLWrVshCAKAd0nb4cOH0bt37xyXAQDp6elo06YNXF1dMW/ePJQvXx6jRo3CunXr0Lp1a9SpUwdz585FiRIl0L9/fzx8+FB87oMHD7B79260b98eCxcuxLhx4xAeHo7GjRvj6dOnGq/13XffYf/+/ZgwYQK++OILhISEoEWLFkhMTJTEvX79Gm3btkXt2rUxb948lC1bFiNGjMCaNWvEGH376ejRowgMDESPHj2wePFilC9fHiEhIejVqxfs7Owwd+5cfP/992jSpAnOnDmjVxsSEeUJgYiIDKpz586ChYWF8PjxY3HZzZs3BWNjYyHzMJ2QkKDxfH9/f6FChQqSZY0bNxYaN24sPn748KEAQFi7dq24rFevXoKLi4uQnp4uLrt06ZJGnDba6nHu3DkBgLBhwwZx2ZQpUwQAwu+//64Rn5GRIQiCIFy8eFHnawYEBAhubm7i40OHDgkAhL1790ri2rZtK2mDjRs3CkZGRsKpU6ckcStWrBAACGfOnNG5bbt37xYACIsWLdIZIwiCYG1tLdSqVUt8rNpWKysroU2bNsJ3330nhIWFaTxP1Rfz588Xrl+/LgAQ6xkcHCwoFAohPj5eCAgIEKysrLKsgyC8ayMAwuzZs8Vlr1+/FuRyuSCTyYStW7eKy2/fvi0AEKZOnSouS0pKkuwDqjqam5sLM2bMEJcdO3ZMACCUKVNGiI2NFZdv375dACAsXrxYXNa4cWMBgLBgwQJxWXJyslCjRg2hdOnSQkpKiiAI+vUTAMHIyEi4ceOGJPbLL78UrK2thbS0tGzbiogov/HKFhGRAaWnp+PQoUPo3LkzypUrJy6vWrUq/P39NeLlcrn4/5iYGLx8+RKNGzfGgwcPEBMTo9dr9+/fH0+fPsWxY8fEZZs3b4ZcLkfXrl2zfK56PVJTU/Hvv/+iYsWKsLW1xaVLl8R1v/32G3x9ffHJJ59olPE+t7Vv1qwZSpUqhW3btonLXr9+jZCQEMmVkB07dqBq1aqoUqUKXr58Kf41a9YMACTbnNnbt28BACVKlMiyLiVKlEBsbKz4ePr06diyZQtq1qyJQ4cOYeLEiahduzZq1aqFW7duaS3D29sb1atXF2+UsWXLFnTq1AmWlpbZtISmIUOGiP+3tbVF5cqVYWVlhe7du4vLK1euDFtbWzx48EBcZm5uDiOjd6cD6enp+Pfff6FQKFC5cmVJX6r0799f0jbdunWDs7Mz/vzzT0mciYkJPvvsM/GxmZkZPvvsMzx//hxhYWEA9O+nxo0bw8vLS7LM1tYW8fHxCAkJyVlDERHlIyZbREQG9OLFCyQmJsLT01NjXeXKlTWWnTlzBi1atICVlRVsbW3h4OCAb7/9FgD0TrZatmwJZ2dncSphRkYGfv31V3Tq1CnbRCMxMRFTpkyBq6srzM3NUapUKTg4OODNmzeSety/fx8+Pj561SsrJiYm6Nq1K/744w/xOz2///47UlNTJcnW3bt3cePGDTg4OEj+KlWqBED7DStUVNuuSrp0efv2rUY79erVC6dOncLr16/F6YCXL19Ghw4dkJSUpLWc3r17Y8eOHbh37x7Onj2r9xRC4N2dDR0cHCTLbGxsULZsWY2k1sbGBq9fvxYfZ2RkYNGiRfD09JT05bVr17TuU5n3VZlMhooVK2p8X8/FxQVWVlaSZar2V8Xq20/u7u4a9fn8889RqVIltGnTBmXLlsWgQYMkt9onIjIk3o2QiKiQuH//Ppo3b44qVapg4cKFcHV1hZmZGf78808sWrQIGRkZepVnbGyM3r17Y9WqVVi2bBnOnDmDp0+fom/fvtk+d/To0Vi7di3GjBkDPz8/2NjYQCaToWfPnnrXQ189e/bEzz//jAMHDqBz587Yvn07qlSpIrmjX0ZGBqpVq4aFCxdqLcPV1VVn+VWrVgUAXLt2TWfM48ePERsbq3GVRcXa2hotW7ZEy5YtYWpqivXr1yM0NBSNGzfWiO3VqxeCgoIwdOhQ2Nvbo1WrVjpfV5fMN/HIbrnw/98RA97dEGXy5MkYNGgQZs6ciZIlS8LIyAhjxozJ877Ut5/Ur6iqlC5dGleuXMGhQ4dw4MABHDhwAGvXrkX//v2xfv36PKk3EVFOMdkiIjIgBwcHyOVy3L17V2Nd5t9x2rt3L5KTk7Fnzx7JlMOspsRlp3///liwYAH27t2LAwcOwMHBQev0xcx27tyJgIAALFiwQFyWlJSEN2/eSOI8PDxw/fr1LMvSdzpho0aN4OzsjG3btqFBgwY4evQoJk6cqPG6V69eRfPmzfUuv1KlSqhUqRJ2796NxYsXa73Kt2HDBgBA+/btsy2vTp06WL9+PZ49e6Z1fbly5VC/fn0cP34cI0aMgIlJ/r4179y5E02bNsXq1asly9+8eYNSpUppxGfeVwVBwL1791C9enXJ8qdPnyI+Pl5ydeuff/4BAPEOkx/ST+rMzMzQoUMHdOjQARkZGfj888/x888/Y/LkyahYseJ7l0tE9KE4jZCIyICMjY3h7++P3bt3IyIiQlx+69YtHDp0SCMWkF6ViImJwdq1a9/79atXr47q1avjl19+wW+//YaePXvm6GTf2NhYUg8AWLJkCdLT0yXLunbtiqtXr2q9s6Lq+aqT8cyJmi5GRkbo1q0b9u7di40bNyItLU3jznXdu3fH//73P6xatUrj+YmJiYiPj8/yNaZMmYLXr19j+PDhGtsUFhaGuXPnwsfHR/xuW0JCAs6dO6e1rAMHDgDQPi1UZdasWZg6dSpGjx6dZb3ygra+3LFjh85b/2/YsEEyxXLnzp149uwZ2rRpI4lLS0uT/IRBSkoKfv75Zzg4OKB27doAPryfAODff/+VPDYyMhITv5zc5p+IKC/xyhYRkYFNnz4dBw8eRMOGDfH5558jLS0NS5Ysgbe3t2QqW6tWrcRP8D/77DPExcVh1apVKF26tM6rJjnRv39/8fepcjKFEHh3RWfjxo2wsbGBl5cXzp07h7/++gv29vaSuHHjxmHnzp349NNPMWjQINSuXRuvXr3Cnj17sGLFCvj6+sLDwwO2trZYsWIFSpQoASsrKyiVSq3fz1Hp0aMHlixZgqlTp6JatWri1D+Vfv36Yfv27Rg+fDiOHTuG+vXrIz09Hbdv38b27dtx6NAh1KlTR2f5ffr0wcWLF7F48WLcvHkTffr0gZ2dHS5duoQ1a9bA3t4eO3fuFH90OSEhAfXq1cPHH3+M1q1bw9XVFW/evMHu3btx6tQpdO7cGTVr1tT5eo0bN9Y6xTA/tG/fHjNmzMDAgQNRr149hIeHY/PmzahQoYLW+JIlS6JBgwYYOHAgoqOj8eOPP6JixYoYOnSoJM7FxQVz587Fo0ePUKlSJWzbtg1XrlzBypUrxXb70H4C3t0Y5NWrV2jWrBnKli2Lx48fY8mSJahRo4bGfkFElO8MeStEIiJ658SJE0Lt2rUFMzMzoUKFCsKKFSuEqVOnatz6fc+ePUL16tUFCwsLoXz58sLcuXOFNWvWCACEhw8finE5ufW7yrNnzwRjY2OhUqVKOa7v69evhYEDBwqlSpUSFAqF4O/vL9y+fVtwc3MTAgICJLH//vuvMGrUKKFMmTKCmZmZULZsWSEgIEB4+fKlGPPHH38IXl5egomJiaSemW/9rpKRkSG4uroKAIRZs2ZprWNKSoowd+5cwdvbWzA3Nxfs7OyE2rVrC9OnTxdiYmJytJ27d+8WWrZsKdjZ2Qnm5uZCxYoVha+++kp48eKFJC41NVVYtWqV0LlzZ8HNzU0wNzcXLC0thZo1awrz588XkpOTxVj1W79nRZ9bv2uLa9y4seDt7a2x3M3NTWjXrp34OCkpSfjqq68EZ2dnQS6XC/Xr1xfOnTunsQ+pbv3+66+/CkFBQULp0qUFuVwutGvXTvKzBeqv/ffffwt+fn6ChYWF4ObmJixdulSjPjntJwDCyJEjNZ6/c+dOoVWrVkLp0qUFMzMzoVy5csJnn30mPHv2LNu2IyLKazJByDR3gIiIipWXL1/C2dkZU6ZMweTJkw1dHSqgjh8/jqZNm2LHjh3o1q1blrFNmjTBy5cvs/2+HhFRUcfvbBERFXPr1q1Deno6+vXrZ+iqEBERFSn8zhYRUTF19OhR3Lx5E9999x06d+4s3iGOiIiIcgeTLSKiYmrGjBk4e/Ys6tevjyVLlhi6OkREREUOv7NFRERERESUB/idLSIiIiIiojzAZIuIiIiIiCgP8DtbOZCRkYGnT5+iRIkSkMlkhq4OEREREREZiCAIePv2LVxcXGBklPW1KyZbOfD06VO4uroauhpERERERFRAREZGomzZslnGGDTZSk9Px7Rp07Bp0yZERUXBxcUFAwYMwKRJk8QrSIIgYOrUqVi1ahXevHmD+vXrY/ny5fD09BTLefXqFUaPHo29e/fCyMgIXbt2xeLFi6FQKMSYa9euYeTIkbh48SIcHBwwevRojB8/Pkf1LFGiBIB3DWptbZ2LLUBERERERIVJbGwsXF1dxRwhKwZNtubOnYvly5dj/fr18Pb2xt9//42BAwfCxsYGX3zxBQBg3rx5+Omnn7B+/Xq4u7tj8uTJ8Pf3x82bN2FhYQEA6NOnD549e4aQkBCkpqZi4MCBGDZsGLZs2QLgXYO0atUKLVq0wIoVKxAeHo5BgwbB1tYWw4YNy7aeqsTP2tqayRYREREREeXo60UGvfV7+/bt4ejoiNWrV4vLunbtCrlcjk2bNkEQBLi4uOCrr77C119/DQCIiYmBo6Mj1q1bh549e+LWrVvw8vLCxYsXUadOHQDAwYMH0bZtWzx58gQuLi5Yvnw5Jk6ciKioKJiZmQEAvvnmG+zevRu3b9/Otp6xsbGwsbFBTEwMky0iIiIiomJMn9zAoHcjrFevHo4cOYJ//vkHAHD16lWcPn0abdq0AQA8fPgQUVFRaNGihfgcGxsbKJVKnDt3DgBw7tw52NraiokWALRo0QJGRkYIDQ0VYxo1aiQmWgDg7++PO3fu4PXr1xr1Sk5ORmxsrOSPiIiIiIhIHwadRvjNN98gNjYWVapUgbGxMdLT0/Hdd9+hT58+AICoqCgAgKOjo+R5jo6O4rqoqCiULl1ast7ExAQlS5aUxLi7u2uUoVpnZ2cnWTdnzhxMnz49l7aSiIiIiIiKI4Ne2dq+fTs2b96MLVu24NKlS1i/fj1++OEHrF+/3pDVQlBQEGJiYsS/yMhIg9aHiIiIiIgKH4Ne2Ro3bhy++eYb9OzZEwBQrVo1PH78GHPmzEFAQACcnJwAANHR0XB2dhafFx0djRo1agAAnJyc8Pz5c0m5aWlpePXqlfh8JycnREdHS2JUj1Ux6szNzWFubp47G0lERERERMWSQa9sJSQkaPwQmLGxMTIyMgAA7u7ucHJywpEjR8T1sbGxCA0NhZ+fHwDAz88Pb968QVhYmBhz9OhRZGRkQKlUijEnT55EamqqGBMSEoLKlStrTCEkIiIiIiLKDQZNtjp06IDvvvsO+/fvx6NHj7Br1y4sXLgQn3zyCYB3t1McM2YMZs2ahT179iA8PBz9+/eHi4sLOnfuDACoWrUqWrdujaFDh+LChQs4c+YMRo0ahZ49e8LFxQUA0Lt3b5iZmWHw4MG4ceMGtm3bhsWLF2Ps2LGG2nQiIiIiIiriDHrr97dv32Ly5MnYtWsXnj9/DhcXF/Tq1QtTpkwR7xyo+lHjlStX4s2bN2jQoAGWLVuGSpUqieW8evUKo0aNkvyo8U8//aTzR41LlSqF0aNHY8KECTmqJ2/9TkREREREgH65gUGTrcKCyRYREREREQGF6He2iIiIiIiIiiomW0RERERERHmAyRYREREREVEeYLJFRERERESUB5hsERERERER5QEmW0RERERERHmAyRYREREREVEeYLJFRERERAZx/fp1XL9+3dDVIMozTLaIiIiIiIjyAJMtIiIiIiKiPMBki4iIiIiIKA8w2SIiIiIiIsoDTLaIiIiIiIjyAJMtIiIiIiKiPMBki4iIiIiIKA8w2SIiIiIiIsoDTLaIiIiIiIjyAJMtIiIiIsoT169fx/Xr1w1dDSKDYbJFRERERESUB5hsERERERER5QEmW0RERERERHmAyRYREREREVEeYLJFRERERESUB5hsERERERER5QEmW0RERERERHmAyRYREREREVEeYLJFRERERESUB5hsUZHBX6knIiIiooKEyRYRERERUQHBD4+LFiZbREREREREeYDJFhERERERUR5gskVERERERJQHmGwRERERERHlASZbREREREREeYDJFhERERERUR5gskVERERERJQHDJpslS9fHjKZTONv5MiRAICkpCSMHDkS9vb2UCgU6Nq1K6KjoyVlREREoF27drC0tETp0qUxbtw4pKWlSWKOHz+OWrVqwdzcHBUrVsS6devyaxMpH/D3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7IzatWvD1NQUR44cEdffuXMHERER8PPzAwD4+fkhPDwcz58/F2NCQkJgbW0NLy8vMUa9DFWMqgxtzM3NYW1tLfkraJjUUFHFfZso//G4IyLKGwadRvj111+jQ4cOcHNzw9OnTzF16lQYGxujV69esLGxweDBgzF27FiULFkS1tbWGD16NPz8/PDxxx8DAFq1agUvLy/069cP8+bNQ1RUFCZNmoSRI0fC3NwcADB8+HAsXboU48ePx6BBg3D06FFs374d+/fvN+SmExGRDkX9pJ9T2YiIig+DJltPnjxBr1698O+//8LBwQENGjTA+fPn4eDgAABYtGgRjIyM0LVrVyQnJ8Pf3x/Lli0Tn29sbIx9+/ZhxIgR8PPzg5WVFQICAjBjxgwxxt3dHfv370dgYCAWL16MsmXL4pdffuFt33NRUT8xKsrYd0RERER5x6DJ1tatW7Ncb2FhgeDgYAQHB+uMcXNzw59//pllOU2aNMHly5ffq45ERESkP17BIyIqYN/ZIiIiIiIiKiqYbBEREREREeUBg04jJCLKK0X9+2icokVERFTw6X1l6+TJk0hLS9NYnpaWhpMnT+ZKpah44q2Hiagg4xhFRET60jvZatq0KV69eqWxPCYmBk2bNs2VShERERERERV2ek8jFAQBMplMY/m///4LKyurXKkU6cZPVYmIiPTD904iMpQcJ1tdunQBAMhkMgwYMED80WAASE9Px7Vr11CvXr3cryEREREREVEhlONky8bGBsC7K1slSpSAXC4X15mZmeHjjz/G0KFDc7+GREREREREhVCOk621a9cCAMqXL4+vv/6aUwaJiIiIiIiyoPd3tqZOnZoX9SAiIiIiIipS9L4bYXR0NPr16wcXFxeYmJjA2NhY8kdERET0oXirfSIqCvS+sjVgwABERERg8uTJcHZ21npnQiIiIiIiouJO72Tr9OnTOHXqFGrUqJEH1aH8ovq00MfHx8A1ISIiIiIqmvSeRujq6gpBEPKiLkREREREREWG3snWjz/+iG+++QaPHj3Kg+oQEREREREVDXpPI+zRowcSEhLg4eEBS0tLmJqaSta/evUq1ypHRERERERUWOmdbP344495UA0iIiIiIqKiRe9kKyAgIC/qQUREREUAb9dORPQfvZOtiIiILNeXK1fuvStDRERERERUVOidbJUvXz7L39ZKT0//oAoREREREREVBXonW5cvX5Y8Tk1NxeXLl7Fw4UJ89913uVYxyj/8zS0iIiIiotynd7Ll6+ursaxOnTpwcXHB/Pnz0aVLl1ypGBERERERUWGm9+9s6VK5cmVcvHgxt4ojIiIiIiIq1PS+shUbGyt5LAgCnj17hmnTpsHT0zPXKkZERERERFSY6Z1s2draatwgQxAEuLq6YuvWrblWMSIiIiIiosJM72Tr2LFjksdGRkZwcHBAxYoVYWKid3FERERERERFkt7ZUePGjfOiHkREREREREXKe12Kun//Pn788UfcunULAODl5YUvv/wSHh4euVo5IiIiIiKiwkrvuxEeOnQIXl5euHDhAqpXr47q1asjNDQU3t7eCAkJyYs6EhERERERFTp6X9n65ptvEBgYiO+//15j+YQJE9CyZctcqxwREREREVFhpfeVrVu3bmHw4MEaywcNGoSbN2/mSqWIiIiIiIgKO72TLQcHB1y5ckVj+ZUrV1C6dOncqBMREREREVGhp/c0wqFDh2LYsGF48OAB6tWrBwA4c+YM5s6di7Fjx+Z6BYmIiIiIiAojvZOtyZMno0SJEliwYAGCgoIAAC4uLpg2bRq++OKLXK8gERERERFRYaR3siWTyRAYGIjAwEC8ffsWAFCiRIlcrxgREREREVFhpney9fDhQ6SlpcHT01OSZN29exempqYoX758btaPiIiIiIioUNL7BhkDBgzA2bNnNZaHhoZiwIABuVEnIiIiIiKiQk/vZOvy5cuoX7++xvKPP/5Y610Kc+r777+HTCbDmDFjxGVJSUkYOXIk7O3toVAo0LVrV0RHR0ueFxERgXbt2sHS0hKlS5fGuHHjkJaWJok5fvw4atWqBXNzc1SsWBHr1q1773oSERERERHlhN7JlkwmE7+rpS4mJgbp6envVYmLFy/i559/RvXq1SXLAwMDsXfvXuzYsQMnTpzA06dP0aVLF3F9eno62rVrh5SUFJw9exbr16/HunXrMGXKFDHm4cOHaNeuHZo2bYorV65gzJgxGDJkCA4dOvRedSUiIiIiIsoJvZOtRo0aYc6cOZLEKj09HXPmzEGDBg30rkBcXBz69OmDVatWwc7OTlweExOD1atXY+HChWjWrBlq166NtWvX4uzZszh//jwA4PDhw7h58yY2bdqEGjVqoE2bNpg5cyaCg4ORkpICAFixYgXc3d2xYMECVK1aFaNGjUK3bt2waNEivetKRERERESUU3onW3PnzsXRo0dRuXJlDBw4EAMHDkTlypVx8uRJzJ8/X+8KjBw5Eu3atUOLFi0ky8PCwpCamipZXqVKFZQrVw7nzp0DAJw7dw7VqlWDo6OjGOPv74/Y2FjcuHFDjMlctr+/v1iGNsnJyYiNjZX8ERERERER6UPvZMvLywvXrl1D9+7d8fz5c7x9+xb9+/fH7du34ePjo1dZW7duxaVLlzBnzhyNdVFRUTAzM4Otra1kuaOjI6KiosQY9URLtV61LquY2NhYJCYmaq3XnDlzYGNjI/65urrqtV1ERERERER63/odePcjxrNnz/6gF46MjMSXX36JkJAQWFhYfFBZuS0oKAhjx44VH8fGxjLhIiIiIiIiveh9ZSu3hIWF4fnz56hVqxZMTExgYmKCEydO4KeffoKJiQkcHR2RkpKCN2/eSJ4XHR0NJycnAICTk5PG3QlVj7OLsba2hlwu11o3c3NzWFtbS/6IiIiIiIj0YbBkq3nz5ggPD8eVK1fEvzp16qBPnz7i/01NTXHkyBHxOXfu3EFERAT8/PwAAH5+fggPD8fz58/FmJCQEFhbW8PLy0uMUS9DFaMqg4iIiIiIKC+81zTC3FCiRAmN73hZWVnB3t5eXD548GCMHTsWJUuWhLW1NUaPHg0/Pz98/PHHAIBWrVrBy8sL/fr1w7x58xAVFYVJkyZh5MiRMDc3BwAMHz4cS5cuxfjx4zFo0CAcPXoU27dvx/79+/N3g4mIiIiIqFjR68qWIAiIiIhAUlJSXtVHYtGiRWjfvj26du2KRo0awcnJCb///ru43tjYGPv27YOxsTH8/PzQt29f9O/fHzNmzBBj3N3dsX//foSEhMDX1xcLFizAL7/8An9//3zZBiIiIiIiKp70urIlCAIqVqyIGzduwNPTM9crc/z4ccljCwsLBAcHIzg4WOdz3Nzc8Oeff2ZZbpMmTXD58uXcqCIREREREVGO6HVly8jICJ6envj333/zqj5ERERERERFgt43yPj+++8xbtw4XL9+PS/qQ0REREREVCTofYOM/v37IyEhAb6+vjAzM9O4ffqrV69yrXJERERERESFld7J1o8//pgH1SAiIiIiIipa9E62AgIC8qIeRERERERERcp7/ajx/fv3MWnSJPTq1Uv8QeEDBw7gxo0buVo5IiIiIiKiwkrvZOvEiROoVq0aQkND8fvvvyMuLg4AcPXqVUydOjXXK0hERERERFQY6Z1sffPNN5g1axZCQkJgZmYmLm/WrBnOnz+fq5UjIiIiIiIqrPROtsLDw/HJJ59oLC9dujRevnyZK5UiIiIiIiIq7PROtmxtbfHs2TON5ZcvX0aZMmVypVJERERERESFnd7JVs+ePTFhwgRERUVBJpMhIyMDZ86cwddff43+/fvnRR2JiIiIiIgKHb2TrdmzZ6NKlSpwdXVFXFwcvLy80KhRI9SrVw+TJk3KizoSEREREREVOnr/zpaZmRlWrVqFKVOmIDw8HHFxcahZsyY8PT3zon5ERERERESFkt7JloqrqytcXV2Rnp6O8PBwvH79GnZ2drlZNyIiIiIiokJL72mEY8aMwerVqwEA6enpaNy4MWrVqgVXV1ccP348t+tHRERERERUKOmdbO3cuRO+vr4AgL179+LBgwe4ffs2AgMDMXHixFyvIBERERERUWGkd7L18uVLODk5AQD+/PNPdO/eHZUqVcKgQYMQHh6e6xUkIiIiIiIqjPROthwdHXHz5k2kp6fj4MGDaNmyJQAgISEBxsbGuV5BIiIiIiKiwkjvG2QMHDgQ3bt3h7OzM2QyGVq0aAEACA0NRZUqVXK9gkRERERERIWR3snWtGnT4OPjg8jISHz66acwNzcHABgbG+Obb77J9QoSEREREREVRu916/du3bppLAsICPjgyhARERERERUVeidbM2bMyHL9lClT3rsyRERERERERYXeydauXbskj1NTU/Hw4UOYmJjAw8ODyRYRERERERHeI9m6fPmyxrLY2FgMGDAAn3zySa5UioiI3o8gCEhKSkJGRgYASP6vom3Zh67X5zULY50KY50LYp1yWmeZTAaZTKaznkREhcV7fWcrM2tra0yfPh0dOnRAv379cqNIIiLSgyAISE9PBwA8fPgQgiBo/F9F27IPXa/PaxbGOhXGOhfEOuW0zqrkiz8pQ0SFXa4kWwAQExODmJiY3CqOiIj0kJ6eDiMjIzg4OMDW1hbJyckAAAsLCyQlJUlitS370PXqyz50fUGsU2Gsc0GsU07qrLo6++LFC/EDBCKiwkrvZOunn36SPBYEAc+ePcPGjRvRpk2bXKsYERHljOqqgCrRksvl4joLCwuNqwbaln3o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G2bPno3Hjx9DJpOhfPnymDRpEkaPHq2z/vreFCMoKAj37t1D165dYWNjg8mTJ0uubNna2mLZsmX45ptvkJ6eDm9vb+zcuRP29vYAgLVr12Lq1KkICgrC06dPYW9vj48++ght2rTR+ZpyuRx37tzBpk2b8OrVKzg5OWHYsGEYMmSIXnUnIiJNTLaIiIqwR9+305giJ5fLNZZ96PrsnqPNoUOHNJZt375d8rhEiRJYsGABli1bprP8jh07QhAEyfr58+dj6dKlOapTuXLlsG7duiy3qVSpUvjhhx90rldJSEjQ+Tq2trZZrgcAa2tr8c6BqvL79u0rru/cuTP8/f11vr6pqSkmT56s82ragAED0KNHD8kyR0dHccrg+/QjERHpxmmEREREREREeYDJFhERERERUR5gskVERERERJQHmGwRERERERHlASZbREREREREeYDJFhFRESEIgqGrQJRruD8XD+03PUb7TY8NXQ2iPMNki4iokJPJZBAEAUlJSYauClGuSUpKgiAIMDU1NXRViIjeG39ni4iokJPJZACAFy9eiMuSk5PFdar/q8dnXvah69WXfej6glinwljnglinnNRZ9cGBan82NjbWWV8iooKOyRYRURFgbGyM9PR0REdH482bN0hJSQEAmJmZif9X0bbsQ9erL/vQ9QWxToWxzgWxTjmts2oKIRMtIirsOI2QiKgIkMlkMDExgbGxMdzd3SGTySCTyST/z2rZh67X5zULY50KY50LYp1yWmdjY2OYmJhAJpMZ+tAiIvogvLJFRFSEyGQyWFhYwMjo3Wdp6v9X0bbsQ9fr85qFsU6Fsc4FsU7vU2ciosKMoxsREREREVEeYLJFRERERESUB5hsERERERER5QEmW0RERERERHmAyRYREREREVEeYLJFRERERESUB5hsERERERER5QEmW0RERERERHmAyRYREREREVEeYLJFRERERESUB5hsERERERER5QEmW0RERERERHnAxNAVIMot7Tc9BgA8+t7HwDUhIiIiIuKVLSIiIiIiojzBZIuIiIiIiCgPMNkiIiIiIiLKAwZNtk6ePIkOHTrAxcUFMpkMu3fvlqwXBAFTpkyBs7Mz5HI5WrRogbt370piXr16hT59+sDa2hq2trYYPHgw4uLiJDHXrl1Dw4YNYWFhAVdXV8ybNy+vN42IiIiIiIo5gyZb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",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv(\"new_osm_users_2023.csv\")\n",
"df[\"first_timestamp\"] = pd.to_datetime(df[\"first_timestamp\"])\n",
"print(f\"total number of new users: {df['user_id'].nunique()}\")\n",
"\n",
"df_all = pd.read_csv(\"osm_user_activity_2023.csv\")\n",
"df_all[\"day\"] = pd.to_datetime(df_all[\"day\"])\n",
"\n",
"daily_new_users = df.groupby([df[\"first_timestamp\"].dt.date]).agg(\n",
" new_users_count=pd.NamedAgg(column=\"user_id\", aggfunc=\"count\")\n",
")\n",
"daily_new_users.reset_index(inplace=True)\n",
"\n",
"print(f'average daily number of users: {df_all[\"count\"].mean()}')\n",
"print(f'average daily number of NEW users: {daily_new_users[\"new_users_count\"].mean()}')\n",
"\n",
"plt.figure(figsize=(10,5))\n",
"\n",
"plt.bar(\n",
" df_all[\"day\"],\n",
" df_all[\"count\"],\n",
" label=\"all OSM users\",\n",
" color=\"lightgrey\"\n",
")\n",
"\n",
"plt.bar(\n",
" daily_new_users[\"first_timestamp\"],\n",
" daily_new_users[\"new_users_count\"],\n",
" label=\"new OSM users\"\n",
")\n",
"\n",
"\n",
"plt.plot(\n",
" [df_all[\"day\"].min(), df_all[\"day\"].max()],\n",
" [df_all[\"count\"].mean(), df_all[\"count\"].mean()],\n",
" label=\"average all users\",\n",
" color=\"black\",\n",
" linestyle= 'dotted'\n",
")\n",
"\n",
"plt.plot(\n",
" [daily_new_users[\"first_timestamp\"].min(), daily_new_users[\"first_timestamp\"].max()],\n",
" [daily_new_users[\"new_users_count\"].mean(), daily_new_users[\"new_users_count\"].mean()],\n",
" label=\"average new users\",\n",
" color=\"black\",\n",
" linestyle= 'dashed'\n",
")\n",
"\n",
"plt.xlim([\n",
" datetime.datetime(2023,1,1),\n",
" datetime.datetime(2023,10,21)\n",
"])\n",
"\n",
"plt.ylabel(\"user count\")\n",
"\n",
"plt.title(\"daily active OSM mappers\")\n",
"\n",
"plt.legend(loc='center', bbox_to_anchor=(0.5, 0.3))\n",
"plt.savefig(\"new_osm_users_per_day.png\", dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "c980ac8e-dbe7-4560-a9ae-c142d088be58",
"metadata": {},
"source": [
"## How many/what share of the new users is likely to be affected by the rate limit?"
]
},
{
"cell_type": "markdown",
"id": "766fb762-bc25-419b-b912-66fb4f384f1e",
"metadata": {},
"source": [
"### Data Preparation\n",
"Here we export the file `changesets_new_users_2023.csv`. This contains all the changesets from the users who started mapping in 2023"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e483558d-0bca-49ae-9795-b89b5cafc7fc",
"metadata": {},
"outputs": [],
"source": [
"# export changesets from new users to CSV\n",
"a = str(df[\"user_id\"].to_list()).replace('[', '(').replace(']', ')')\n",
"sql = f\"\"\"\n",
"\\copy (SELECT id, user_id, created_at, min_lat, max_lat, min_lon, max_lon, closed_at, num_changes, tags->'comment' as comment, tags->'created_by' as created_by, tags->'hashtags' as hashtags FROM osm_changeset WHERE user_id in {a}) TO 'changesets_new_users_2023.csv' WITH CSV DELIMITER ',' HEADER\n",
"\"\"\"\n",
"\n",
"with open(\"export_changesets.sql\", 'w') as f:\n",
" f.write(sql)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c1159c97-575e-48d1-a882-aa9aa8b66e8b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"number of changesets: 2386153\n",
"number of users: 132423\n"
]
}
],
"source": [
"changesets = pd.read_csv(\"changesets_new_users_2023.csv\")\n",
"changesets[\"created_at\"] = pd.to_datetime(changesets[\"created_at\"])\n",
"print(f\"number of changesets: {len(changesets)}\")\n",
"\n",
"users = changesets[\"user_id\"].unique()\n",
"print(f\"number of users: {len(users)}\")"
]
},
{
"cell_type": "markdown",
"id": "058f650a-b484-4b06-ad14-1fa13fa9ce85",
"metadata": {},
"source": [
"### Simple approach: edits per day"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "e67786bb-cfb3-48f4-8252-5fcbcded547c",
"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>rate limit</th>\n",
" <th>users</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>5095</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1500</td>\n",
" <td>3185</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2000</td>\n",
" <td>2211</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2500</td>\n",
" <td>1682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5000</td>\n",
" <td>635</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate limit users\n",
"0 1000 5095\n",
"1 1500 3185\n",
"2 2000 2211\n",
"3 2500 1682\n",
"4 5000 635"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import pickle\n",
"\n",
"users_hit_rate_limit = {}\n",
"rate_limit_thresholds = [1000, 1500, 2000, 2500, 5000]\n",
"summary_stats = []\n",
"\n",
"\n",
"for rate_limit_threshold in rate_limit_thresholds:\n",
" users_hit_rate_limit[rate_limit_threshold] = []\n",
" for user_id in users:\n",
" user_df = changesets[changesets[\"user_id\"] == user_id].copy()\n",
" user_df.sort_values(\"created_at\", inplace=True)\n",
" \n",
" user_df[\"cum_num_changes\"] = user_df[\"num_changes\"].cumsum()\n",
" first_timestamp = user_df[\"created_at\"].min()\n",
" user_df_filtered = user_df[user_df[\"created_at\"] <= (first_timestamp + datetime.timedelta(1))]\n",
"\n",
" if user_df_filtered[\"cum_num_changes\"].max() >= rate_limit_threshold:\n",
" users_hit_rate_limit[rate_limit_threshold].append(user_id)\n",
"\n",
" summary_stats.append(\n",
" [rate_limit_threshold, len(users_hit_rate_limit[rate_limit_threshold])]\n",
" )\n",
" \n",
"with open('interesting_users.pickle', 'wb') as handle:\n",
" pickle.dump(users_hit_rate_limit, handle)\n",
"\n",
"summary_stats_df = pd.DataFrame(summary_stats, columns=[\"rate limit\", \"users\"])\n",
"display(summary_stats_df)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "e1326c38-1de4-47e8-83ba-94a2f0e2298c",
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"\n",
"colors = [\n",
" \"lightblue\",\n",
" \"lightgrey\",\n",
" \"silver\",\n",
" \"grey\",\n",
" \"black\"\n",
"]\n",
"rate_limit_thresholds = [1000, 1500, 2000, 2500, 5000]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "3ac1ed33-d3b6-4615-951d-7330f25a7699",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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M0KPHj3E724HBwdh9erVMudW0eul6G9feac/L1Ge16ewsFCYN2+eYGFhIWhpaQnu7u5CfHy83OdR0fTnubm5wrBhwwRDQ0MBgPgeed1nZM2aNYKBgYFQUFAgF3N543n+/Lnwf//3f2K99u3bC9HR0XJ/U17m5eUlABCioqIULl+3bp2gra0tczsAev9JBKGSRo8SfcAyMjJgYWEh3gzwXeTu7o6MjAylxzoR1URbtmyBv78/Lly4gFatWpVZ19raGi1atJC70WlN1K1bN1haWuLnn3+u1jgiIiLQpUsX7N69u9TWo+oWEhKCefPm4b///nttC4lEIsGECROwZs2atxQdVZSXlxd0dXWxa9eut7rfjz76CFevXsWtW7cULndycoK7uzuWL1/+VuOi6sUxUkSVYMuWLSgsLKyWMSNE9OFYuHAhfv311wrdHoDofeDu7o4pU6a81X2mpKTg8OHDpf6NDwsLw82bNxEcHPxW46LqxzFSRG/gxIkTuHbtGr7++mt4e3u/9kaHRERvwtXVVWbSFaIPTWm3H6gKSUlJOHv2LH788UfUqlVL5ob1L/P09ERubu5bi4tqDiZSRG9g/vz54rTkpU2HSkRERO+eyMhI+Pv7o169eti6das4gydRCY6RIiIiIiIiUhLHSBERERERESmJiRQREREREZGSOEYKQFFRER48eAA9PT3xJodERERERPThEQQBjx8/hqWlJVRUSm93YiIF4MGDB7CysqruMIiIiIiIqIb4999/Ubdu3VKXM5ECoKenB6D4ZOnr61dzNEREREREVF1ycnJgZWUl5gilYSIFiN359PX1mUgREREREdFrh/xwsgkiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIiUhITKSIiIiIiIiUxkSIiIiIiIlISEykiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIiUhITKSIiIiIiIiUxkSIiIiIiIlISEykiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIiUpJadQdAVB57E1LE/w+wtajGSIiIiIiI2CJFRERERESkNCZSRERERERESmIiRUREREREpCQmUkREREREREpiIkVERERERKQkJlJERERERERKYiJFRERERESkJCZSRERERERESmIiRUREREREpCQmUkREREREREqq1kQqNDQUrVu3hp6eHszMzODt7Y2EhASZOs+fP8eECRNgbGwMXV1dDBw4EGlpaTJ1kpOT0bt3b2hra8PMzAzTpk3Dixcv3uahEBERERHRB6RaE6nIyEhMmDAB586dQ3h4OAoKCtCzZ088efJErDNlyhT8/vvv2L17NyIjI/HgwQMMGDBAXF5YWIjevXsjPz8fUVFR2Lp1K7Zs2YIvv/yyOg6JiIiIiIg+ABJBEITqDqLEf//9BzMzM0RGRqJTp07Izs6Gqakptm/fjkGDBgEAbty4gWbNmiE6Ohpt27bFH3/8gT59+uDBgwcwNzcHAKxfvx4zZszAf//9B3V19dfuNycnBwYGBsjOzoa+vn6VHiNVzN6EFPH/A2wtqjESIiIiInqflTc3qFFjpLKzswEARkZGAIDY2FgUFBSge/fuYp2mTZuiXr16iI6OBgBER0fD3t5eTKIAwMPDAzk5Ofj7778V7icvLw85OTkyDyIiIiIiovKqMYlUUVERAgMD0b59e7Ro0QIAkJqaCnV1dRgaGsrUNTc3R2pqqljn5SSqZHnJMkVCQ0NhYGAgPqysrCr5aIiIiIiI6H1WYxKpCRMmID4+Hjt37qzyfQUHByM7O1t8/Pvvv1W+TyIiIiIien+oVXcAADBx4kQcOnQIp06dQt26dcVyqVSK/Px8ZGVlybRKpaWlQSqVinXOnz8vs72SWf1K6rxKQ0MDGhoalXwURERERET0oajWFilBEDBx4kTs27cPJ06cQIMGDWSWu7i4oFatWjh+/LhYlpCQgOTkZLi5uQEA3NzccPXqVaSnp4t1wsPDoa+vDzs7u7dzIERERERE9EGp1hapCRMmYPv27Thw4AD09PTEMU0GBgbQ0tKCgYEBRo0ahalTp8LIyAj6+vqYNGkS3Nzc0LZtWwBAz549YWdnhxEjRmDx4sVITU3FnDlzMGHCBLY6ERERERFRlajWRGrdunUAAHd3d5nyzZs3w8/PDwCwfPlyqKioYODAgcjLy4OHhwe+++47sa6qqioOHTqEcePGwc3NDTo6Ohg5ciTmz5//tg6DiIiIiIg+MDXqPlLVhfeRqvl4HykiIiIiehveyftIERERERERvQuYSBERERERESmJiRQREREREZGSmEgREREREREpiYkUERERERGRkphIERERERERKYmJFBERERERkZKYSBERERERESmJiRQREREREZGSmEgREREREREpiYkUERERERGRkphIERERERERKYmJFBERERERkZKYSBERERERESmJiRQREREREZGSmEgREREREREpiYkUERERERGRkphIERERERERKYmJFBERERERkZKYSBERERERESmJiRQREREREZGSmEhRjbM3IQV7E1KqOwwiIiIiolIxkSIiIiIiIlISEykiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIiUhITKSIiIiIiIiUxkSIiIiIiIlISEykiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIiUlK1JlKnTp1C3759YWlpCYlEgv3798ssl0gkCh9LliwR61hbW8st/+abb97ykRARERER0YekWhOpJ0+ewNHREWvXrlW4PCUlReaxadMmSCQSDBw4UKbe/PnzZepNmjTpbYRPREREREQfKLXq3HmvXr3Qq1evUpdLpVKZ5wcOHECXLl3QsGFDmXI9PT25ukRERERERFXlnRkjlZaWhsOHD2PUqFFyy7755hsYGxvDyckJS5YswYsXL8rcVl5eHnJycmQeRERERERE5VWtLVLK2Lp1K/T09DBgwACZ8smTJ8PZ2RlGRkaIiopCcHAwUlJSsGzZslK3FRoainnz5lV1yERERERE9J56ZxKpTZs2Yfjw4dDU1JQpnzp1qvh/BwcHqKurY+zYsQgNDYWGhobCbQUHB8usl5OTAysrq6oJnIiIiIiI3jvvRCJ1+vRpJCQk4Ndff31tXVdXV7x48QJ37tyBra2twjoaGhqlJllERERERESv806Mkdq4cSNcXFzg6Oj42rpxcXFQUVGBmZnZW4iMiIiIiIg+RNXaIpWbm4tbt26Jz5OSkhAXFwcjIyPUq1cPQHG3u927d2Pp0qVy60dHRyMmJgZdunSBnp4eoqOjMWXKFHzyySeoXbv2WzsOIiIiIiL6sFRrInXx4kV06dJFfF4ybmnkyJHYsmULAGDnzp0QBAE+Pj5y62toaGDnzp0ICQlBXl4eGjRogClTpsiMfyIiIiIiIqpsEkEQhOoOorrl5OTAwMAA2dnZ0NfXr+5wPnh7E1IAAANsLeTKXi0nIiIiIqpM5c0N3okxUkRERERERDUJEykiIiIiIiIlMZEiIiIiIiJSEhMpIiIiIiIiJTGRIiIiIiIi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",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"with open('interesting_users.pickle', 'rb') as handle:\n",
" users_hit_rate_limit = pickle.load(handle)\n",
"\n",
"plt.figure(figsize=(10,5))\n",
"\n",
"for i, rate_limit_threshold in enumerate(rate_limit_thresholds):\n",
"\n",
" daily_new_users_supects = df[\n",
" df[\"user_id\"].isin(users_hit_rate_limit[rate_limit_threshold])\n",
" ].groupby(\n",
" [df[\"first_timestamp\"].dt.date]\n",
" ).agg(\n",
" new_users_count=pd.NamedAgg(column=\"user_id\", aggfunc=\"count\")\n",
" )\n",
" daily_new_users_supects.reset_index(inplace=True)\n",
"\n",
" mean = round(daily_new_users_supects['new_users_count'].mean(), 1)\n",
" \n",
" plt.bar(\n",
" daily_new_users_supects[\"first_timestamp\"],\n",
" daily_new_users_supects[\"new_users_count\"],\n",
" label=f\"Rate {rate_limit_threshold} (mean: {mean})\",\n",
" color=colors[i]\n",
" )\n",
"\n",
"plt.xlim([\n",
" datetime.datetime(2023,1,1),\n",
" datetime.datetime(2023,10,21)\n",
"])\n",
"plt.title('daily \"suspicious\" new OSM mappers (simple approach: edits/day)')\n",
"\n",
"plt.ylabel(\"user count\")\n",
"plt.legend(loc=\"center\")\n",
"plt.savefig(\"suspicious_new_osm_users_simple_approach.png\", dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "5b61ebbb-0bfc-48bd-9794-984a45d7b2d0",
"metadata": {},
"source": [
"### Advanced Approach: edits per hour with moving time window"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "e26976e2-0781-4c72-bcd2-dc59027d5be6",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAHDCAYAAAAugyvIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAACbOklEQVR4nOzdeVyN6f8/8NeptG9CG1FDlkibQRhClDAa21hGaowMYmLsY8k+jCX79sFgLGMfY8kkOwmNjAYhLTO0DKkkLer+/dHv3N+Oc0onpYPX8/Howbnu677v932f+yzvc133dUkEQRBAREREREREZaZW1QEQERERERG9b5hIERERERERKYmJFBERERERkZKYSBERERERESmJiRQREREREZGSmEgREREREREpiYkUERERERGRkphIERERERERKYmJFBERERERkZKYSJFKCwoKgkQiKde6bm5ucHNzEx/Hx8dDIpHg559/rpjg3lPlPQ8///wzJBIJ4uPjKyUuoo/B1atXoampiYSEhArb5uvvdR86vhcpz9fXF/r6+lUdhhxra2v4+vqKj8+ePQuJRIKzZ89W+n579OhRqfsoj9atW2PSpElVHQYpgYkUUTlJP8yB/3vz5wd75ftQz7sgCNixYwfat28PY2Nj6Orqwt7eHnPmzMGLFy/k6hcWFmL79u1o1aoVTExMYGBggIYNG8LHxwdXrlwR60nPkUQiwS+//KJw323btoVEIkGzZs0q7fioyA8//ICBAweiXr16VR0K0Xth165dCA4OfqttFBYWolatWli8eHHFBFVJJk+ejDVr1iA5ObmqQ6EyYiJFH6w//vgDf/zxR1WHoXLq1auHly9fYsiQIUqtN2TIELx8+ZJfACtBQUEBBgwYAB8fHwBFLbHBwcFwdHTE7Nmz0bp1a6SkpMisM3bsWAwdOhQWFhYICgrCokWL0K1bN1y5cgUhISFy+9DW1sauXbvkyuPj43H58mVoa2tXzsGRKCoqCqdOncK3335b1aEQqaT27dvj5cuXaN++vVhWEYnU1atX8eTJE3Tv3v0tI6xcvXr1gqGhIdauXVvVoVAZaVR1AESVRVNTs6pDUEkSiaRcX5rV1dWhrq5eCRHR4sWLsXfvXkyYMAE//fSTWO7v74/+/fvD29sbvr6+OHHiBAAgJSUFa9euxfDhw7Fx40aZbQUHB+O///6T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6euMiOhd42ATRESVRF1dHcbGxkhNTQUA6OrqygzTS0TKEwQB2dnZSE1NhbGxMdTV1as6JCL6SDGRIiKqRObm5gAgJlNEVDGMjY3F1xcRUVVgIkVEVIkkEgksLCxgamqK/Pz8qg6H6INQrVo1tkQRUZVjIkVE9A6oq6vzix8REdEHhINNEBERERERKYmJFBERERERkZLYtY9UTsP8p///fxZVGgcRERERUUnYIkVERERERKQkJlL0UTgYk4SDMUlVHQYRERERfSCYSBERERERESmJiRQREREREZGSmEgRUaVgd0oiIiL6kDGRIiIiIiIiUhITKSIiIiIiIiVxHil6L/zf3FIA55ciIiL6OEm7jPduxO8CVPXYIkVERERERKQkJlJERERERERKYiJFRERERESkJCZSRERERERESmIiRUREREREpCQmUkREREREREpiIkVERERERKQkJlJERERERERKYiJFRERERESkJCZSRERERERESmIiRUREREREpCQmUkREREREREpiIkVERERERKQkJlJERERERERK0qjqAIiIiIiIyqJh/tP//z+LKo2DCHjPWqR+/PFHSCQSBAYGimU5OTkYPXo0atSoAX19ffTp0wcpKSlVFyQREREREX3w3ptE6tq1a9iwYQOaN28uUz5u3Dj8/vvv2LdvH86dO4fHjx+jd+/eVRQlERERERF9DN6LRCorKwuDBw/Gpk2bUL16dbE8IyMDmzdvxrJly9CpUye4uLhg69atuHz5Mq5cuVKFERMRERGRsoKCghAUFFTi8qdPn+Lp06clLid6l96LRGr06NHo3r073N3dZcojIyORn58vU964cWPUrVsX4eHh7zpMIiIiIiL6SKj8YBN79uzBn3/+iWvXrsktS05OhqamJoyNjWXKzczMkJycXOI2c3NzkZubKz7OzMyssHiJiIiIiOjDp9ItUv/88w++++477Ny5E9ra2hW23YULF8LIyEj8s7KyqrBtExEREVHlOHv2LM6ePVvVYRABUPFEKjIyEqmpqXB2doaGhgY0NDRw7tw5rFy5EhoaGjAzM0NeXh7S09Nl1ktJSYG5uXmJ2506dSoyMjLEv3/++aeSj4SIiIiIiD4kKt21r3Pnzrh165ZMmZ+fHxo3bozJkyfDysoK1apVQ1hYGPr06QMAiImJQWJiIlxdXUvcrpaWFrS0tCo1diIiIiIqm4MxSWWqJx2IYtasWZUYDVHZqHQiZWBggGbNmsmU6enpoUaNGmL5sGHDMH78eJiYmMDQ0BBjxoyBq6srWrduXRUhExERERHRR0ClE6myWL58OdTU1NCnTx/k5ubCw8MDa9eureqwiIiIiIjoA/beJVKv32Cora2NNWvWYM2aNVUTEBERERERfXRUerAJIiIiIiIiVfTetUgRkeribPNERET0sWCLFBERERERkZKYSBERERERESmJXftIJTTMZ5cwIiKijxW/B9D7iC1SRERERERESmIiRUREREREpCQmUkREREQq5GBMEg7GJFV1GEQflfK87phIERERERERKYmJFJGS+EshERERETGRIiIiIiIiUhITKSIiIiIiIiUxkSIiIlIR7DpMRPT+YCJFRERERESkJI2qDoCIiIjoYyJtdezdyKKKI1EdT58+reoQiJTGFikiIiIiIiIlMZEiIiIiIiJSErv20UeHXSqIiIgqnzKft2fPnq3kaIgqHlukiIiIiIiIlMREioiIiIiISElMpIiIiIiIiJTERIqIiIiIiEhJHGyCiIiI6B1qmC+dM4mDHkkFBQVVdQj0kSvP65ItUkREREREREpiIkVERERERKQkJlJERERERERKYiJFRERERESkJCZSRERERERESuKofURUqQ7GJIn/792II1QRERHRh4EtUkREREREREpiixSpnKdPn4r//78x/el9I33u7lWrUa71pS1Zqt6K9b7EWZKKiv99Pw9E79KBAwcAAM2aNSu1Hlv0iVQbW6SIiIiIiIiUxESKiIiIiIhISezaR0RURuy+9v7ic0eqiF33iN5vbJEiIiIiIiJSElukqEqVZzAJ/rKsus6ePQsA6NChQ9UGouJ4DZeO54eIqHw+lvdPVTlOtkgREREREREpiYkUERERERGRkphIERERERERKYmJFBERERERkZKYSBERERERESlJpROphQsX4tNPP4WBgQFMTU3h7e2NmJgYmTo5OTkYPXo0atSoAX19ffTp0wcpKSlVFHHFOxiTJDPPxMfq6dOn4l9V4PNAREQVJSgoCEFBQVUdBhG9JZVOpM6dO4fRo0fjypUrCA0NRX5+Prp27YoXL16IdcaNG4fff/8d+/btw7lz5/D48WP07t27CqMmIiIiIqIPnUrPIxUSEiLz+Oeff4apqSkiIyPRvn17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",
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"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>rate limit</th>\n",
" <th>changesets</th>\n",
" <th>users</th>\n",
" <th>daily average users</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>58193</td>\n",
" <td>3304</td>\n",
" <td>11.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1500</td>\n",
" <td>45452</td>\n",
" <td>1584</td>\n",
" <td>6.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2000</td>\n",
" <td>38989</td>\n",
" <td>972</td>\n",
" <td>4.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2500</td>\n",
" <td>35327</td>\n",
" <td>710</td>\n",
" <td>3.7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5000</td>\n",
" <td>28520</td>\n",
" <td>352</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate limit changesets users daily average users\n",
"0 1000 58193 3304 11.2\n",
"1 1500 45452 1584 6.0\n",
"2 2000 38989 972 4.4\n",
"3 2500 35327 710 3.7\n",
"4 5000 28520 352 4.5"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"colors = [\n",
" \"lightblue\",\n",
" \"lightgrey\",\n",
" \"silver\",\n",
" \"grey\",\n",
" \"black\"\n",
"]\n",
"\n",
"with open('interesting_users.pickle', 'rb') as handle:\n",
" users_hit_rate_limit = pickle.load(handle)\n",
"\n",
"summary_stats = []\n",
"changesets_hit_rate_limit = {}\n",
"\n",
"plt.figure(figsize=(10,5))\n",
"for i, rate_limit_threshold in enumerate(rate_limit_thresholds):\n",
"\n",
" user_ids = []\n",
" changesets_hit_rate_limit[rate_limit_threshold] = []\n",
" for user_id in users_hit_rate_limit[rate_limit_threshold]:\n",
" user_df = changesets[changesets[\"user_id\"] == user_id].copy()\n",
" user_df.sort_values(\"created_at\", inplace=True)\n",
" user_df[\"cum_num_changes\"] = user_df[\"num_changes\"].cumsum()\n",
" first_timestamp = user_df[\"created_at\"].min()\n",
" user_df_filtered = user_df[user_df[\"created_at\"] <= (first_timestamp + datetime.timedelta(1))].copy()\n",
" \n",
" # we use a rolling window of 1 hour\n",
" user_df_filtered.set_index(\"created_at\", inplace=True)\n",
" user_df_filtered[\"cum_num_changes_last_hour\"] = user_df_filtered[\"num_changes\"].rolling(window='1H').sum()\n",
" \n",
" changeset_ids = user_df_filtered[user_df_filtered[\"cum_num_changes_last_hour\"] >= rate_limit_threshold][\"id\"].to_list()\n",
" if len(changeset_ids) > 0:\n",
" changesets_hit_rate_limit[rate_limit_threshold] += changeset_ids\n",
" user_ids.append(user_id)\n",
"\n",
" daily_new_users_supects = df[\n",
" df[\"user_id\"].isin(user_ids)\n",
" ].groupby(\n",
" [df[\"first_timestamp\"].dt.date]\n",
" ).agg(\n",
" new_users_count=pd.NamedAgg(column=\"user_id\", aggfunc=\"count\")\n",
" )\n",
" daily_new_users_supects.reset_index(inplace=True)\n",
" \n",
" mean = round(daily_new_users_supects['new_users_count'].mean(), 1)\n",
" \n",
" plt.bar(\n",
" daily_new_users_supects[\"first_timestamp\"],\n",
" daily_new_users_supects[\"new_users_count\"],\n",
" label=f\"Rate {rate_limit_threshold} (mean: {mean})\",\n",
" color=colors[i]\n",
" )\n",
"\n",
" summary_stats.append([\n",
" rate_limit_threshold,\n",
" len(changesets_hit_rate_limit[rate_limit_threshold]), \n",
" len(user_ids),\n",
" mean\n",
" ])\n",
"\n",
"plt.xlim([\n",
" datetime.datetime(2023,1,1),\n",
" datetime.datetime(2023,10,21)\n",
"])\n",
"plt.title('daily \"suspicious\" new OSM mappers (advanced approach: edits/hour)')\n",
"\n",
"plt.ylabel(\"user count\")\n",
"plt.legend(loc=\"center\")\n",
"plt.savefig(\"suspicious_new_osm_users_advanced_approach.png\", dpi=300)\n",
"plt.show()\n",
"\n",
"summary_stats_df = pd.DataFrame(summary_stats, columns=[\"rate limit\", \"changesets\", \"users\", \"daily average users\"])\n",
"display(summary_stats_df)"
]
},
{
"cell_type": "markdown",
"id": "a3735373-8a46-4688-aa5c-836e2e32231a",
"metadata": {},
"source": [
"### Users blocked by DWG\n",
"We extracted a list of all blocked users from https://www.openstreetmap.org/user_blocks and filtered only those which were blocked in 2023."
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "aebe23a7-e653-4cc9-b057-faf60b409075",
"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>rate limit</th>\n",
" <th>users</th>\n",
" <th>changesets</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>294</td>\n",
" <td>5555</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1500</td>\n",
" <td>280</td>\n",
" <td>4908</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2000</td>\n",
" <td>258</td>\n",
" <td>4298</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2500</td>\n",
" <td>242</td>\n",
" <td>3683</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5000</td>\n",
" <td>199</td>\n",
" <td>2889</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate limit users changesets\n",
"0 1000 294 5555\n",
"1 1500 280 4908\n",
"2 2000 258 4298\n",
"3 2500 242 3683\n",
"4 5000 199 2889"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"summary_stats_dwg = []\n",
"\n",
"#check blocked users\n",
"blocked = pd.read_csv(\"blocked_users.csv\")\n",
"#all changesets 2023 reduced df\n",
"cs_id = changesets.filter(items=[\"user_id\", \"id\"])\n",
"#inner merge: only user_ids that exist in both dataframes are saved\n",
"blocked_all = pd.merge(cs_id, blocked, on=\"user_id\", how=\"inner\")\n",
"res = len(blocked_all[\"user_id\"].unique()) #result blocked unique users of all 2023 changesets\n",
"len(blocked_all[\"id\"].unique())\n",
"\n",
"for i, rate_limit_threshold in enumerate(rate_limit_thresholds):\n",
" confirmed_cs_df = pd.DataFrame({\"id\": changesets_hit_rate_limit[rate_limit_threshold]})\n",
" \n",
" #confirmed changesetss with user_id\n",
" confirmed_cs_id = pd.merge(confirmed_cs_df, changesets, on=\"id\", how=\"left\") #confirmed changesets need user id\n",
" #inner merge again\n",
" #for user we group by, for changesets we dont\n",
" blocked_ids = pd.merge(confirmed_cs_id, blocked, on =\"user_id\", how =\"inner\").filter(items=[\"id\", \"user_id\"])\n",
"\n",
" summary_stats_dwg.append([\n",
" rate_limit_threshold,\n",
" len(blocked_ids[\"user_id\"].unique()), #number of blocked affected users\n",
" len(blocked_ids[\"id\"].unique()) #number of blocked affected changesets\n",
" ])\n",
" \n",
"summary_stats_dwg_df = pd.DataFrame(\n",
" summary_stats_dwg,\n",
" columns=[\"rate limit\", \"users\", \"changesets\"]\n",
")\n",
"display(summary_stats_dwg_df)"
]
},
{
"cell_type": "markdown",
"id": "2d92d321-dfa6-4676-9dee-585a7adbeb47",
"metadata": {},
"source": [
"### Deleted User Account\n",
"Some users were not blocked, but they deleted the accounts themselves or the accounts were deleted by the OSM sysadmins. A list of deleted user accounts is available from the Planet OSM download server: https://planet.openstreetmap.org/users_deleted/"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "e09440bd-1d61-4965-bf7d-82b10b3d5c34",
"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>rate limit</th>\n",
" <th>users</th>\n",
" <th>changesets</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>134</td>\n",
" <td>39978</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1500</td>\n",
" <td>112</td>\n",
" <td>35820</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2000</td>\n",
" <td>100</td>\n",
" <td>32334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2500</td>\n",
" <td>87</td>\n",
" <td>29901</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5000</td>\n",
" <td>70</td>\n",
" <td>24838</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate limit users changesets\n",
"0 1000 134 39978\n",
"1 1500 112 35820\n",
"2 2000 100 32334\n",
"3 2500 87 29901\n",
"4 5000 70 24838"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"deleted_users = pd.read_csv(\"https://planet.openstreetmap.org/users_deleted/users_deleted.txt\")\n",
"deleted_users.rename(columns={\"# user IDs of deleted users. \": \"user_id\"}, inplace=True)\n",
"\n",
"summary_stats_deleted = []\n",
"\n",
"\n",
"cs_id = changesets.filter(items=[\"user_id\", \"id\"])\n",
"#inner merge: only user_ids that exist in both dataframes are saved\n",
"deleted_all = pd.merge(cs_id, deleted_users, on=\"user_id\", how=\"inner\")\n",
"res = len(deleted_all[\"user_id\"].unique()) #result blocked unique users of all 2023 changesets\n",
"len(deleted_all[\"id\"].unique())\n",
"\n",
"for i, rate_limit_threshold in enumerate(rate_limit_thresholds):\n",
" confirmed_cs_df = pd.DataFrame({\"id\": changesets_hit_rate_limit[rate_limit_threshold]})\n",
" \n",
" #confirmed changesetss with user_id\n",
" confirmed_cs_id = pd.merge(confirmed_cs_df, changesets, on=\"id\", how=\"left\") #confirmed changesets need user id\n",
" #inner merge again\n",
" #for user we group by, for changesets we dont\n",
" deleted_ids = pd.merge(confirmed_cs_id, deleted_users, on =\"user_id\", how =\"inner\").filter(items=[\"id\", \"user_id\"])\n",
"\n",
" summary_stats_deleted.append([\n",
" rate_limit_threshold,\n",
" len(deleted_ids[\"user_id\"].unique()), #number of deleted affected users\n",
" len(deleted_ids[\"id\"].unique()) #number of deleted affected changesets\n",
" ])\n",
" \n",
"summary_stats_deleted_df = pd.DataFrame(\n",
" summary_stats_deleted,\n",
" columns=[\"rate limit\", \"users\", \"changesets\"]\n",
")\n",
"display(summary_stats_deleted_df)"
]
},
{
"cell_type": "markdown",
"id": "8f65404e-d26c-4856-ac79-ee07c0656964",
"metadata": {},
"source": [
"### OSM changeset hashtag analysis"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "f9dfb204-5179-461f-9495-8c904aa3740b",
"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>rate limit</th>\n",
" <th>changesets hotosm</th>\n",
" <th>users hotosm</th>\n",
" <th>changesets missingmaps</th>\n",
" <th>users missingmaps</th>\n",
" <th>changesets no hashtag</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>9462</td>\n",
" <td>1904</td>\n",
" <td>3072</td>\n",
" <td>633</td>\n",
" <td>48186</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1500</td>\n",
" <td>3422</td>\n",
" <td>709</td>\n",
" <td>1251</td>\n",
" <td>265</td>\n",
" <td>41804</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2000</td>\n",
" <td>1447</td>\n",
" <td>312</td>\n",
" <td>574</td>\n",
" <td>124</td>\n",
" <td>37400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2500</td>\n",
" <td>722</td>\n",
" <td>162</td>\n",
" <td>326</td>\n",
" <td>68</td>\n",
" <td>34487</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5000</td>\n",
" <td>48</td>\n",
" <td>13</td>\n",
" <td>35</td>\n",
" <td>8</td>\n",
" <td>28391</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate limit changesets hotosm users hotosm changesets missingmaps \\\n",
"0 1000 9462 1904 3072 \n",
"1 1500 3422 709 1251 \n",
"2 2000 1447 312 574 \n",
"3 2500 722 162 326 \n",
"4 5000 48 13 35 \n",
"\n",
" users missingmaps changesets no hashtag \n",
"0 633 48186 \n",
"1 265 41804 \n",
"2 124 37400 \n",
"3 68 34487 \n",
"4 8 28391 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#select hashtags and id from changesets df\n",
"hashtags = pd.read_csv(\"changesets_new_users_2023.csv\", usecols=[0,1,11])\n",
"\n",
"summary_stats_hashtags = []\n",
"\n",
"for i, rate_limit_threshold in enumerate(rate_limit_thresholds):\n",
"\n",
" confirmed_cs_df = pd.DataFrame({\"id\": changesets_hit_rate_limit[rate_limit_threshold]})\n",
" \n",
" #join confirmed cs and with hashtags\n",
" cs_hashtags = pd.merge(confirmed_cs_df, hashtags, on='id', how='left')\n",
" #how many changesets with hashtags hotosm\n",
" hotosm_project = cs_hashtags.loc[cs_hashtags[\"hashtags\"].fillna(False).astype(str).str.contains(\"hotosm-project-\",regex=True)]\n",
" \n",
" #how many changesets with hashtags missingmaps\n",
" missingmaps = cs_hashtags.loc[cs_hashtags[\"hashtags\"].fillna(False).astype(str).str.contains(\"missingmaps\",regex=True)]\n",
" \n",
" #how many changesets have no hashtag\n",
" no_hashtag = cs_hashtags[\"hashtags\"].isna().sum()\n",
"\n",
" summary_stats_hashtags.append([\n",
" rate_limit_threshold,\n",
" len(hotosm_project),\n",
" len(hotosm_project[\"user_id\"].unique()),\n",
" len(missingmaps),\n",
" len(missingmaps[\"user_id\"].unique()),\n",
" no_hashtag\n",
" ])\n",
"\n",
"summary_stats_hashtags_df = pd.DataFrame(\n",
" summary_stats_hashtags,\n",
" columns=[\"rate limit\", \"changesets hotosm\", \"users hotosm\", \"changesets missingmaps\", \"users missingmaps\", \"changesets no hashtag\"]\n",
")\n",
"display(summary_stats_hashtags_df)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mmd-osm
Copy link

mmd-osm commented Feb 2, 2024

Because any changeset which is blocked by the rate limit is now not uploaded to the OSM database anymore, we lack data about how many changesets are currently affected.

API maintainer here.
That’s not quite accurate. These blocked uploads would show up as empty changesets, since you need to create a changeset first before uploading any changes. If the latter fails, an empty changeset will be still around.

@Hagellach37
Copy link
Author

Hey @mmd-osm ,
thanks for reaching out here and providing your feedback. I will make sure to update this in the blog post.

Still, I find it difficult to identify those changesets which are currently blocked by the OSM API. Would you suggest a way how this could be done? I guess one could look at all empty changesets, but probably there are numerous other reasons why an empty changeset is uploaded?

@mmd-osm
Copy link

mmd-osm commented Feb 10, 2024

I would focus on empty changesets which have been created during the first 7 days of mapping activity only. The clock starts ticking when the first changeset is created, regardless if it's empty or not. The data for all empty changesets is probably a bit too noisy, but I haven't checked this in detail.

I agree that there might be a number of reasons why a changeset could be empty. Some people might face issues with their internet connection, and then retry a few seconds later. Depending on the editor app used and on settings, such a retry attempt might create an empty changeset.

You'd probably have to fine tune an analysis based on the existing data. One hypothetical scenario could be: if someone on their first mapping days creates an empty changeset, and then 30 seconds another changeset with 500 changes, I'd discard the first changeset as a potential rate limiting victim, since it's rather unlikely to do 500 changes in just 30 seconds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment