39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
from IntensiveCareBedsProvider import getIntensiveCareBeds
|
|
from IOUtils import IOUtils
|
|
|
|
def getAndPersistIntensiveCareBeds4AlleKreise(timeSeries, intensivstationenDataDir, kreisValues):
|
|
getAndPersistIntensiveCareBeds(timeSeries, intensivstationenDataDir)
|
|
for kreis in kreisValues:
|
|
getAndPersistIntensiveCareBeds(
|
|
timeSeries,
|
|
intensivstationenDataDir = intensivstationenDataDir,
|
|
kreis = kreis)
|
|
|
|
def getAndPersistIntensiveCareBeds(timeSeries, intensivstationenDataDir, kreis = None):
|
|
intensiveCareBeds = getIntensiveCareBeds(timeSeries, kreis)
|
|
display(kreis)
|
|
_saveAsJson(intensiveCareBeds, _getFilename(intensivstationenDataDir, kreis))
|
|
|
|
|
|
def _saveAsJson(intensiveCareBeds, file):
|
|
IOUtils.saveDictAsJson(
|
|
{
|
|
'population': int(intensiveCareBeds.iloc[0]['Einwohnerzahl']),
|
|
'data': _intensiveCareBeds2Dict(intensiveCareBeds),
|
|
},
|
|
file)
|
|
|
|
|
|
def _intensiveCareBeds2Dict(intensiveCareBeds):
|
|
df = intensiveCareBeds[['date', 'betten_belegt', 'betten_frei']].copy()
|
|
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
|
|
return df.to_dict(orient = "records")
|
|
|
|
|
|
def _getFilename(intensivstationenDataDir, kreis):
|
|
return f'{intensivstationenDataDir}/intensivstationen-{_getSuffix(kreis)}.json'
|
|
|
|
|
|
def _getSuffix(kreis):
|
|
return kreis if kreis is not None else 'de'
|