188 lines
5.0 KiB
Plaintext
188 lines
5.0 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "9de5907f-18f5-4cb1-903e-26028ff1fa03",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import os\n",
|
|
"import sys\n",
|
|
"\n",
|
|
"module_path = os.path.abspath(os.path.join('..'))\n",
|
|
"if module_path not in sys.path:\n",
|
|
" sys.path.append(module_path)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "640be762",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"from DateProvider import DateProvider\n",
|
|
"from datetime import datetime\n",
|
|
"from ColumnsAdder import ColumnsAdder\n",
|
|
"from MedianOfFreeBedsByKreisTableFactory import MedianOfFreeBedsByKreisTableFactory\n",
|
|
"from TimeseriesReader import readTimeseries\n",
|
|
"from IntensivstationenHtmlFileUpdater import saveLastUpdatedIntensivstationen, saveKreisOptions\n",
|
|
"from KreiseReader import readKreise\n",
|
|
"from KreisOptionsProvider import getKreisOptionsAndAlleLandkreise\n",
|
|
"from IntensiveCareBedsPersister import getAndPersistIntensiveCareBeds4AlleKreise\n",
|
|
"from Chart import createMedianOfFreeBedsByKreisChart\n",
|
|
"\n",
|
|
"\n",
|
|
"pd.set_option('display.max_rows', 100)\n",
|
|
"pd.set_option('display.max_columns', None)\n",
|
|
"pd.set_option('mode.chained_assignment', 'raise')\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "e40d4c8d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"print(datetime.now().strftime(\"%d.%m.%Y, %H:%M:%S Uhr\"))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "336f56e6",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"dateProvider = DateProvider()\n",
|
|
"print(' lastUpdated:', dateProvider.getLastUpdated())\n",
|
|
"print('lastUpdatedDataSource:', dateProvider.getLastUpdatedDataSource()) \n",
|
|
"needsUpdate = True # dateProvider.needsUpdate()\n",
|
|
"print('needsUpdate:', needsUpdate)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "63be303c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"saveLastUpdatedIntensivstationen(\n",
|
|
" dateProvider.getLastUpdatedDataSource(),\n",
|
|
" toHtmlFile = \"../../docs/intensivstationen.html\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "3f992231",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"timeSeries = readTimeseries(download = needsUpdate)\n",
|
|
"timeSeries"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "356494d3",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"kreisValues = sorted(timeSeries['Kreis'].drop_duplicates().values)\n",
|
|
"saveKreisOptions(\n",
|
|
" kreisOptions = getKreisOptionsAndAlleLandkreise(kreisValues),\n",
|
|
" toHtmlFile = \"../../docs/intensivstationen.html\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "349edd73",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"getAndPersistIntensiveCareBeds4AlleKreise(\n",
|
|
" timeSeries,\n",
|
|
" intensivstationenDataDir = '../../docs/data/intensivstationen',\n",
|
|
" kreisValues = kreisValues)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "f10704f3",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"medianOfFreeBedsByKreisTable = MedianOfFreeBedsByKreisTableFactory(timeSeries).createMedianOfFreeBedsByKreisTable('Kreis')\n",
|
|
"medianOfFreeBedsByKreisTable.reset_index().to_json(\n",
|
|
" '../../docs/data/intensivstationen/medianOfFreeBedsByKreisTable.json',\n",
|
|
" orient = \"records\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "d1b75357",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def getChartTitle(dateStart, dateEnd):\n",
|
|
" def formatDate(date):\n",
|
|
" return date.strftime(\"%d.%m.%Y\")\n",
|
|
"\n",
|
|
" return f\"Median freier Intensivbetten im Zeitraum {formatDate(dateStart)} bis {formatDate(dateEnd)}\""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "8b392b34",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import os\n",
|
|
"\n",
|
|
"createMedianOfFreeBedsByKreisChart(\n",
|
|
" timeSeries,\n",
|
|
" chartTitle = getChartTitle(\n",
|
|
" dateStart=timeSeries['date'].min(),\n",
|
|
" dateEnd=timeSeries['date'].max()),\n",
|
|
" accessToken = os.environ['DATAWRAPPER_API_TOKEN'])"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "howbadismybatch-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.8 (main, Nov 24 2022, 14:13:03) [GCC 11.2.0]"
|
|
},
|
|
"vscode": {
|
|
"interpreter": {
|
|
"hash": "1bce2b9b19ce5f16d695ff75ac05095b3e564c169ff454b58b87cb796c0695b8"
|
|
}
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|