Files
HowBadIsMyBatch/src/intensivstationen/Intensivstationen.ipynb
frankknoll b4bb79efdf refactoring
2022-12-14 23:45:55 +01:00

231 lines
6.4 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 Datawrapper import Datawrapper\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",
"\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 = dateProvider.needsUpdate()\n",
"print('needsUpdate:', needsUpdate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "63be303c",
"metadata": {},
"outputs": [],
"source": [
"saveLastUpdatedIntensivstationen(dateProvider.getLastUpdatedDataSource(), toHtmlFile = \"../../docs/intensivstationen.html\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3f992231",
"metadata": {},
"outputs": [],
"source": [
"timeSeries = readTimeseries(download = needsUpdate)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "356494d3",
"metadata": {},
"outputs": [],
"source": [
"kreisValues = sorted(timeSeries['Kreis'].drop_duplicates().values)\n",
"kreisOptions = getKreisOptionsAndAlleLandkreise(kreisValues)\n",
"saveKreisOptions(kreisOptions, 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": [
"medianOfFreeBedsByKreisTableFactory = MedianOfFreeBedsByKreisTableFactory(timeSeries)\n",
"medianOfFreeBedsByKreisTable = medianOfFreeBedsByKreisTableFactory.createMedianOfFreeBedsByKreisTable('Kreis')\n",
"medianOfFreeBedsByKreisTable.reset_index().to_json('../../docs/data/intensivstationen/medianOfFreeBedsByKreisTable.json', orient = \"records\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "396cb4f8",
"metadata": {},
"outputs": [],
"source": [
"def createMedianOfFreeBedsByKreisTableForChoroplethMap(medianOfFreeBedsByKreisTableFactory):\n",
" medianOfFreeBedsByKreisTable = medianOfFreeBedsByKreisTableFactory.createMedianOfFreeBedsByKreisTable('gemeindeschluessel').reset_index()\n",
" return ColumnsAdder(readKreise()).addKreisAndEinwohnerzahlColumns(medianOfFreeBedsByKreisTable)\n",
" \n",
"medianOfFreeBedsByKreisTable = createMedianOfFreeBedsByKreisTableForChoroplethMap(medianOfFreeBedsByKreisTableFactory)"
]
},
{
"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": "9de2f34e",
"metadata": {},
"outputs": [],
"source": [
"from decouple import AutoConfig\n",
"\n",
"config = AutoConfig(search_path='../..')\n",
"dataWrapper = Datawrapper(config('DATAWRAPPER_API_TOKEN'))\n",
"dataWrapper.setChartTitle(\n",
" getChartTitle(\n",
" dateStart=timeSeries['date'].min(),\n",
" dateEnd=timeSeries['date'].max()))\n",
"dataWrapper.uploadChartData(medianOfFreeBedsByKreisTable)\n",
"dataWrapper.publishChart()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0218cdb4",
"metadata": {},
"outputs": [],
"source": [
"def publishGitHubPages():\n",
" %cd /home/frankknoll/Dokumente/Corona/projects/HowBadIsMyBatch-pages\n",
" ! git add -A\n",
" ! git commit -m \"updating data for Intensivstationen\"\n",
" ! git push"
]
},
{
"cell_type": "markdown",
"id": "a1e83b07",
"metadata": {},
"source": [
"### see https://knollfrank.github.io/HowBadIsMyBatch/intensivstationen.html"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5f173c2b",
"metadata": {},
"outputs": [],
"source": [
"publishGitHubPages()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "howbadismybatch-venv-kernel",
"language": "python",
"name": "howbadismybatch-venv-kernel"
},
"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"
},
"vscode": {
"interpreter": {
"hash": "1bce2b9b19ce5f16d695ff75ac05095b3e564c169ff454b58b87cb796c0695b8"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}