diff --git a/notebooks/2024-08-08-david-demodiff.ipynb b/notebooks/2024-08-08-david-demodiff.ipynb new file mode 100644 index 00000000..03e406cf --- /dev/null +++ b/notebooks/2024-08-08-david-demodiff.ipynb @@ -0,0 +1,164 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1706\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'cef81a345ccdd1f859bf67e1f23b3f0e4eee8f0d',\n", + " 'datasets': ['dd-ger-berlin'],\n", + " 'referents': [],\n", + " 'schema': 'Event',\n", + " 'properties': {'name': ['Genozid an den Jesiden (vom 28.07. bis 29.09.2024 - täglich)'],\n", + " 'startDate': ['2024-08-01T00:00:00'],\n", + " 'endDate': ['2024-08-01T00:00:00'],\n", + " 'location': ['Platz der Republik, 10557 Berlin',\n", + " 'Heinrich-von-Gagern-Str., 10557 Berlin']}},\n", + " {'id': 'c6b0491dfdf57302f7b834984676bfb1ade56e6e',\n", + " 'datasets': ['dd-ger-berlin'],\n", + " 'referents': [],\n", + " 'schema': 'Event',\n", + " 'properties': {'name': ['Mahnwache für eine sozial- und klimagerechte Verkehrsw- ende (vom 22.07. bis 13.09.2024 - täglich)'],\n", + " 'startDate': ['2024-08-01T00:00:00'],\n", + " 'endDate': ['2024-08-01T23:59:00'],\n", + " 'location': ['Platz der Republik, 10557 Berlin']}},\n", + " {'id': '7d1e9907a009d9b0efa5f375d4bee6390347aa90',\n", + " 'datasets': ['dd-ger-berlin'],\n", + " 'referents': [],\n", + " 'schema': 'Event',\n", + " 'properties': {'name': ['Petition für die Evakuierung unserer zurückgebliebenen Kinder in Afghanistan (vom 28.07. bis 02.08.2024,Mo.,Di.,Mi.,Do- .,So.)'],\n", + " 'startDate': ['2024-08-01T00:00:00'],\n", + " 'endDate': ['2024-08-01T23:59:00'],\n", + " 'location': ['Werderscher Markt 1, 10117 Berlin']}}]" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from media_impact_monitor.util.cache import get\n", + "from datetime import date, timedelta\n", + "\n", + "res = get(\n", + " \"https://api.demodiff.de/entities\",\n", + " params=dict(\n", + " size=5000, start_date=(date.today() - timedelta(days=7)).strftime(\"%Y-%m-%d\")\n", + " ),\n", + ").json()\n", + "print(res[\"total\"])\n", + "data = res[\"data\"]\n", + "for d in data:\n", + " del d[\"properties\"][\"description\"]\n", + "data[:3]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'id': 'cef81a345ccdd1f859bf67e1f23b3f0e4eee8f0d',\n", + " 'datasets': ['dd-ger-berlin'],\n", + " 'referents': [],\n", + " 'schema': 'Event',\n", + " 'properties': {'name': ['Genozid an den Jesiden (vom 28.07. bis 29.09.2024 - täglich)'],\n", + " 'startDate': ['2024-08-01T00:00:00'],\n", + " 'endDate': ['2024-08-01T00:00:00'],\n", + " 'location': ['Platz der Republik, 10557 Berlin',\n", + " 'Heinrich-von-Gagern-Str., 10557 Berlin']}}" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "item = get(f\"https://api.demodiff.de/entities/{data[0]['id']}\").json()\n", + "del item[\"properties\"][\"description\"]\n", + "item\n" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1OzZs4/5NlK0OV3mlE6fWZkzujBndInGOWOca889MQAAAOHB73YBAACmiA8AAGCK+AAAAKaIDwAAYIr4OMqcOXN02WWXqXv37urdu7fGjRun6urqoGMOHjyogoIC9ezZUykpKcrPzw/6oWr/+Mc/NGnSJGVmZio5OVkDBw7UvHnzgs6xZs0axcTEHLPV1dVF1ZzS/35/z+9//3v169dPiYmJOuecc8x+yaDVnLfffnubn8/BgwdH1ZyStGTJEl188cXq1q2b+vTpo1/96lfat29fxGeUbOcsKSnRwIEDlZycrP79++vFF1+M+HxHCses+/bt089+9jP17dtXiYmJyszM1L333nvM7y9Zs2aNLrnkEiUmJuqCCy7Q4sWLLUaUZDfnnj17dPPNN+uiiy5SbGysZsyYYTWiJLs533jjDV177bXq1auXPB6PfD6f3nvvPbM52y08v9EleuTl5bnS0lK3detW9+mnn7rrr7/eZWVluf379weOmTp1qsvMzHTl5eVu06ZNLicnx11++eWB5xcuXOjuu+8+t2bNGrdjxw730ksvueTkZPf0008Hjvnwww+dJFddXe327NkT2H744YeomtM5537xi1+4ESNGuPfff9/t2rXLrVu3zq1duzaq5mxoaAj6PNbU1LjU1FQ3e/bsqJpz7dq1LjY21s2bN8/t3LnTffTRR27w4MHuxhtvjKo5FyxY4Lp37+6WLl3qduzY4V5++WWXkpLi3nrrLZM5wzXrd9995xYsWOA2btzovv76a/fBBx+4/v37u0mTJgWO2blzp+vWrZsrLCx027dvd08//bQ744wz3KpVq6Jqzl27drn77rvPvfDCC27YsGFu+vTpJvMdZjXn9OnT3eOPP+4+/vhj98UXX7iioiIXHx/vNm/ebDrvjyE+fsTevXudJFdRUeGc+98Xmfj4eLds2bLAMZ999pmT5CorK497nnvuucddc801gceH4+Pf//53xNYeikjN+e677zqv1+v27dsXucWHIFJzHm358uUuJibGff311+FbfAgiNeeTTz7pzjvvvKBj5s+f784+++wwT9A+kZrT5/O5WbNmBR1TWFjoRo4cGeYJ2i9cs86bN89lZGQEHj/wwANu8ODBQcdMnDjR5eXlhXmC9onUnEe6+uqrzePjaBZzHjZo0CD3yCOPhGfhYcK3XX5EY2OjJCk1NVWSVFVVpZaWFuXm5gaOGTBggLKyslRZWXnC8xw+x5GGDRumPn366Nprr9Xf//73MK++/SI151tvvaVLL71UTzzxhM4++2xddNFFmjVrlr7//vsITXJikf58HrZw4ULl5uaqX79+YVp5aCI1p8/nU01Njf7617/KOaf6+nq99tpruv766yM0yYlFak6/36+kpKSgY5KTk/Xxxx+rpaUlnCO0Wzhmra2t1RtvvKGrr746sK+ysjLoHJKUl5d3wj+vSIrUnKcaqzlbW1vV3Nx8wv9edQbi4wRaW1s1Y8YMjRw5UkOGDJEk1dXVKSEh4ZhffpeWlnbc6zXWrVunV155RXfddVdgX58+ffTss8/q9ddf1+uvv67MzEyNGjVKmzdvjtg8xxPJOXfu3Km1a9dq69atWr58uZ566im99tpruueeeyI2z/FEcs4j1dbW6t1339Wdd94Z1vW3VyTnHDlypJYsWaKJEycqISFB6enp8nq9Kikpidg8xxPJOfPy8vT888+rqqpKzjlt2rRJzz//vFpaWvSvf/0rYjMdT0dnnTRpkrp166azzz5bHo9Hzz//fOC5urq6Y376dFpampqamsz/JyGSc55KLOf805/+pP379+umm24K+xwdQXycQEFBgbZu3aqlS5ee9Dm2bt2qsWPHavbs2bruuusC+/v376/f/OY3ys7O1uWXX65Fixbp8ssvV3FxcTiWHpJIztna2qqYmBgtWbJEw4cP1/XXX6+5c+fqhRdeMP8PWyTnPNILL7ygHj16aNy4cSf9Oh0RyTm3b9+u6dOn6+GHH1ZVVZVWrVqlr7/+WlOnTg3H0kMSyTkfeughjRkzRjk5OYqPj9fYsWM1efJkSVJsrP1/Njs6a3FxsTZv3qw333xTO3bsUGFhYZhXGB7M2T7tnbOsrEyPPPKIXn31VfXu3bsjSw6/zv6+z6mqoKDAZWRkuJ07dwbtLy8vb/NajaysLDd37tygfdu2bXO9e/d2v/vd79r1mrNmzXI5OTkdWneoIj3nbbfd5s4///ygfdu3b3eS3BdffBGeIdrB6vPZ2trqLrjgAjdjxoywrT0UkZ7z1ltvdRMmTAja99FHHzlJrra2NjxDtIPV5/PQoUOupqbG/fe//w1chGp1Ufhh4Zj1SEd/vq688spjrn9YtGiR83g8YVl/e0V6ziN15jUfVnO+/PLLLjk52b399tthW3s4ER9HaW1tdQUFBa5v375tfnE8fFHQa6+9Ftj3+eefH3NR0NatW13v3r3d/fff3+7Xzs3NNbtrwGrO5557ziUnJ7vm5ubAvhUrVrjY2Fj3n//8J4wTtc3683n4QuItW7aEb4h2sJpz/Pjx7qabbgrat27dOifJffvtt2Ga5vg68+/nVVddFXRXQaSFa9ajVVRUOElu165dzrn/XXA6ZMiQoGMmTZpkdsGp1ZxH6oz4sJyzrKzMJSUluRUrVoR1hnAiPo5y9913O6/X69asWRN06+SRXyinTp3qsrKy3OrVq92mTZucz+dzPp8v8PyWLVtcr1693K233hp0jr179waOKS4uditWrHBffvml27Jli5s+fbqLjY11H3zwQVTN2dzc7DIyMtyECRPctm3bXEVFhbvwwgvdnXfeGVVzHnbrrbe6ESNGmMx2JKs5S0tLXVxcnFuwYIHbsWOHW7t2rbv00kvd8OHDo2rO6upq99JLL7kvvvjCbdiwwU2cONGlpqa2+YXsVJ71nXfecYsWLXJbtmxxu3btcm+//bYbOHBg0F07h2+1vf/++91nn33mSkpKTG+1tZrTOec++eQT98knn7js7Gx38803u08++cRt27YtquZcsmSJi4uLcyUlJUGv09DQYDJnexEfR5HU5lZaWho45vvvv3f33HOPO+uss1y3bt3cjTfe6Pbs2RN4fvbs2W2eo1+/foFjHn/8cXf++ee7pKQkl5qa6kaNGuVWr14ddXM697/bxXJzc11ycrLLyMhwhYWFJu96WM/Z0NDgkpOT3Z///GeT2Y5kOef8+fPdoEGDXHJysuvTp4+75ZZb3DfffBNVc27fvt0NGzbMJScnO4/H48aOHes+//xzkxkPC8esq1evdj6fz3m9XpeUlOQuvPBC9+CDDx7z1v6HH37ohg0b5hISEtx5550X9BqRZjlne/797upzXn311W2+zuTJk03mbK8Y55xr82IQAACACOBuFwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKaIDwAAYIr4AAAApogPAABgivgAAACmiA8AAGCK+AAAAKb+H8Ti2ot0aC3pAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAHRCAYAAADKV9uIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvBUlEQVR4nO3deXRUZZ7/8U+FLCCQBIIkIovYiAFlURSICy2CjaAgsojYg0jjBkhLclpptAfcTsPotDvgDrbdiAMeFbQbx0EbxhYEwmLENkqEIRISBCSBQBZS398f+aU0CFIpKk8teb/OqXPIrSUPn3pIPty6z70eMzMBAAA4EhPqAQAAgIaF8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAAp2JDPYBjeb1eFRQUqHnz5vJ4PKEeDgAA8IOZ6eDBg2rTpo1iYn5+30bYlY+CggK1a9cu1MMAAAAByM/PV9u2bX/2MWFXPpo3by6pevCJiYkhHg0AAPBHSUmJ2rVr5/s9/nPCrnzUfNSSmJhI+QAAIML4c8gEB5wCAACnKB8AAMApygcAAHCK8gEAAJyqU/l44IEH5PF4at3S09N995eVlWnKlClKSUlRs2bNNHLkSBUVFQV90AAAIHLVec/Heeedp927d/tuH3/8se++zMxMLV++XEuWLNGqVatUUFCgESNGBHXAAAAgstV5qW1sbKzS0tJ+sr24uFgvv/yyFi1apCuvvFKStGDBAnXp0kVr165V3759T320AAAg4tV5z8fXX3+tNm3a6Oyzz9avf/1r7dy5U5KUnZ2tyspKDRw40PfY9PR0tW/fXmvWrDnh65WXl6ukpKTWDQAARK86lY8+ffpo4cKFWrFihebPn6/t27fr8ssv18GDB1VYWKj4+HglJyfXek5qaqoKCwtP+JqzZ89WUlKS78ap1QEAiG51+thl8ODBvj93795dffr0UYcOHfRf//VfatKkSUADmDFjhrKysnxf15yeFQAARKdTWmqbnJyszp07a9u2bUpLS1NFRYUOHDhQ6zFFRUXHPUakRkJCgu9U6pxSHQCA6HdK5ePQoUPKy8vTGWecoV69eikuLk4rV6703Z+bm6udO3cqIyPjlAcKAACiQ50+dvnd736noUOHqkOHDiooKNCsWbPUqFEjjR07VklJSZo4caKysrLUsmVLJSYmaurUqcrIyGClCwAA8KlT+fj22281duxY7du3T6effrouu+wyrV27Vqeffrok6YknnlBMTIxGjhyp8vJyDRo0SPPmzauXgQMAgMjkMTML9SB+rKSkRElJSSouLub4DwAAIkRdfn/X+SRjDcFZv3+v1tc75lwTopEAABB9uLAcAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAqVMqH3PmzJHH49G0adN828rKyjRlyhSlpKSoWbNmGjlypIqKik51nAAAIEoEXD7Wr1+v559/Xt27d6+1PTMzU8uXL9eSJUu0atUqFRQUaMSIEac8UAAAEB0CKh+HDh3Sr3/9a7344otq0aKFb3txcbFefvllPf7447ryyivVq1cvLViwQJ988onWrl173NcqLy9XSUlJrRsAAIheAZWPKVOm6JprrtHAgQNrbc/OzlZlZWWt7enp6Wrfvr3WrFlz3NeaPXu2kpKSfLd27doFMiQAABAh6lw+Fi9erI0bN2r27Nk/ua+wsFDx8fFKTk6utT01NVWFhYXHfb0ZM2aouLjYd8vPz6/rkAAAQASJrcuD8/Pzdffdd+uDDz5Q48aNgzKAhIQEJSQkBOW1AABA+KvTno/s7Gzt2bNHF154oWJjYxUbG6tVq1bp6aefVmxsrFJTU1VRUaEDBw7Uel5RUZHS0tKCOW4AABCh6rTnY8CAAcrJyam1bcKECUpPT9f06dPVrl07xcXFaeXKlRo5cqQkKTc3Vzt37lRGRkbwRg0AACJWncpH8+bNdf7559fa1rRpU6WkpPi2T5w4UVlZWWrZsqUSExM1depUZWRkqG/fvsEbNQAAiFh1Kh/+eOKJJxQTE6ORI0eqvLxcgwYN0rx584L9bQAAQITymJmFehA/VlJSoqSkJBUXFysxMTEkYzjr9+/V+nrHnGtCMg4AACJFXX5/c20XAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgVJ3Kx/z589W9e3clJiYqMTFRGRkZ+vvf/+67v6ysTFOmTFFKSoqaNWumkSNHqqioKOiDBgAAkatO5aNt27aaM2eOsrOztWHDBl155ZW67rrrtHXrVklSZmamli9friVLlmjVqlUqKCjQiBEj6mXgAAAgMnnMzE7lBVq2bKnHHntMo0aN0umnn65FixZp1KhRkqQvv/xSXbp00Zo1a9S3b9/jPr+8vFzl5eW+r0tKStSuXTsVFxcrMTHxVIYWsLN+/16tr3fMuSYk4wAAIFKUlJQoKSnJr9/fAR/zUVVVpcWLF6u0tFQZGRnKzs5WZWWlBg4c6HtMenq62rdvrzVr1pzwdWbPnq2kpCTfrV27doEOCQAARIA6l4+cnBw1a9ZMCQkJuvPOO/XWW2+pa9euKiwsVHx8vJKTk2s9PjU1VYWFhSd8vRkzZqi4uNh3y8/Pr/NfAgAARI7Yuj7h3HPP1ebNm1VcXKylS5dq/PjxWrVqVcADSEhIUEJCQsDPBwAAkaXO5SM+Pl6dOnWSJPXq1Uvr16/XU089pTFjxqiiokIHDhyotfejqKhIaWlpQRswAACIbKd8ng+v16vy8nL16tVLcXFxWrlype++3Nxc7dy5UxkZGaf6bQAAQJSo056PGTNmaPDgwWrfvr0OHjyoRYsW6R//+Ifef/99JSUlaeLEicrKylLLli2VmJioqVOnKiMj44QrXQAAQMNTp/KxZ88e3Xzzzdq9e7eSkpLUvXt3vf/++7rqqqskSU888YRiYmI0cuRIlZeXa9CgQZo3b169DBwAAESmUz7PR7DVZZ1wfeE8HwAA1I2T83wAAAAEgvIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACcig31AMLBWb9/z/fnHXOuCeFIwsePM5HIBQAQPOz5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATnFV2zDFVWUBANGKPR8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIqltqfgx8thWQoLAIB/2PMBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKdYagsgrHGFZyD6sOcDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOxYZ6AK5F0+W5o+nvAgBoONjzAQAAnKJ8AAAAp+pUPmbPnq2LL75YzZs3V+vWrTV8+HDl5ubWekxZWZmmTJmilJQUNWvWTCNHjlRRUVFQBw0AACJXncrHqlWrNGXKFK1du1YffPCBKisr9atf/UqlpaW+x2RmZmr58uVasmSJVq1apYKCAo0YMSLoAwcAAJGpTgecrlixotbXCxcuVOvWrZWdna1+/fqpuLhYL7/8shYtWqQrr7xSkrRgwQJ16dJFa9euVd++fYM3cgAAEJFO6ZiP4uJiSVLLli0lSdnZ2aqsrNTAgQN9j0lPT1f79u21Zs2a475GeXm5SkpKat0AAED0Cniprdfr1bRp03TppZfq/PPPlyQVFhYqPj5eycnJtR6bmpqqwsLC477O7Nmz9eCDDwY6DACqveyaJdcAwl3Aez6mTJmizz//XIsXLz6lAcyYMUPFxcW+W35+/im9HgAACG8B7fm466679O6772r16tVq27atb3taWpoqKip04MCBWns/ioqKlJaWdtzXSkhIUEJCQiDDAAAAEahOez7MTHfddZfeeustffjhh+rYsWOt+3v16qW4uDitXLnSty03N1c7d+5URkZGcEYMAAAiWp32fEyZMkWLFi3SO++8o+bNm/uO40hKSlKTJk2UlJSkiRMnKisrSy1btlRiYqKmTp2qjIwMVroAAABJdSwf8+fPlyRdccUVtbYvWLBAt9xyiyTpiSeeUExMjEaOHKny8nINGjRI8+bNC8pgAQBA5KtT+TCzkz6mcePGmjt3rubOnRvwoAAAQPRqcFe1BVA3/lw9ORyusBwOYwDgHy4sBwAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnWGrrp2At42M5oP8iJatIGefxcDVcAKHAng8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATnGejyA63vkejt0WycLxfBb1PaZjz4MRjhmEAucHwYkwN+AP9nwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCmW2kaIcF3iybK6yOHPHArXeRYJwiG7cBgD4A/2fAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKZbaNkAsxwOA+sPP2JNjzwcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnGKpLcKCv0vTGtpVdANdssdSv8jBexVc5BkZ2PMBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKdYahsGgrk0jGVmQMPAv3WcSCTMDfZ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK83xEuXBd7/3jcYXLmMKBP7mE63vqUn2dG6chZhkueB8aFvZ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApltpCUv0ucwvHpaGux3S87xeOubjmTy7hKtB/M5GypDRSxonIxJ4PAADgFOUDAAA4VefysXr1ag0dOlRt2rSRx+PR22+/Xet+M9PMmTN1xhlnqEmTJho4cKC+/vrrYI0XAABEuDqXj9LSUvXo0UNz58497v2PPvqonn76aT333HP69NNP1bRpUw0aNEhlZWWnPFgAABD56nzA6eDBgzV48ODj3mdmevLJJ/WHP/xB1113nSTpz3/+s1JTU/X222/rxhtvPLXRAgCAiBfUYz62b9+uwsJCDRw40LctKSlJffr00Zo1a477nPLycpWUlNS6AQCA6BXUpbaFhYWSpNTU1FrbU1NTffcda/bs2XrwwQeDOQwgICx9jX68x2SA8BDy1S4zZsxQcXGx75afnx/qIQEAgHoU1PKRlpYmSSoqKqq1vaioyHffsRISEpSYmFjrBgAAoldQy0fHjh2VlpamlStX+raVlJTo008/VUZGRjC/FQAAiFB1Pubj0KFD2rZtm+/r7du3a/PmzWrZsqXat2+vadOm6ZFHHtE555yjjh076t///d/Vpk0bDR8+PJjjBgAAEarO5WPDhg3q37+/7+usrCxJ0vjx47Vw4ULde++9Ki0t1e23364DBw7osssu04oVK9S4cePgjRoAAESsOpePK664QmZ2wvs9Ho8eeughPfTQQ6c0MAAAEJ24qi0aBK7QGXrhcCXh+nxefQvHK0/X5/P8fW3+bUemkC+1BQAADQvlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4xVJboB6w/C+6hOvyW38wF/0TDkuzj32tY0XTcmP2fAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKZbaIqgieUkiEC74d3R85BI92PMBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnO84Gow7kAwsPJLg/eEETTXAyHS84Hkz+XoQ/XsQci3P4u7PkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFMstQUAwA/BXK4abUuX64o9HwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwiqW2AICoFurlqaH+/uGIPR8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACn6q18zJ07V2eddZYaN26sPn36aN26dfX1rQAAQASpl/LxxhtvKCsrS7NmzdLGjRvVo0cPDRo0SHv27KmPbwcAACJIvZSPxx9/XLfd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "ds = (\n", + " pd.Series([pd.to_datetime(d[\"properties\"][\"startDate\"][0]).date() for d in data])\n", + " .value_counts()\n", + " .sort_index()\n", + ")\n", + "ds = ds.reindex(pd.date_range(ds.index.min(), ds.index.max(), freq=\"D\")).fillna(0)\n", + "ds.index = ds.index.date\n", + "plt.bar(ds.index, ds.values)\n", + "plt.show()\n", + "ds = ds[ds.index < (date.today() + timedelta(days=90))]\n", + "plt.bar(ds.index, ds.values)\n", + "plt.setp(plt.gca().xaxis.get_majorticklabels(), \"rotation\", 45)\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}