File:Suomen korona epidemia parantuneita sairaana kuolleita tapauksia syksy 2020.svg

Original file(SVG file, nominally 1,282 × 589 pixels, file size: 104 KB)

Captions

Captions

Suomen koronaepidemia THL:n datan mukaan syksyllä 2020

Summary

edit
Description
English: Suomen koronaepidemia THL:n datan mukaan syksyllä 2020.
Date
Source Own work
Author Merikanto

Source of data is covid-19 aggregate datta in net

Python3 code to produce image

    1. COVID-19 statistics from aggregated data from net site
    2. with Python
    3. Input from internet site: cases, recovered, deaths.
    4. Calculates active cases.
    5. v. 2000.08
    6. 13.5.2021


apv="2020-07-01" lpv="2021-05-12"

paiva1=apv paiva2=lpv


import math as math import numpy as np import pandas as pd import matplotlib.pyplot as plt

import locale from datetime import datetime, timedelta

import matplotlib.ticker as ticker import matplotlib.dates as mdates from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,

                              AutoMinorLocator)

from matplotlib.ticker import MaxNLocator from matplotlib.ticker import ScalarFormatter

from bs4 import BeautifulSoup import requests from scipy.signal import savgol_filter from scipy import interpolate import scipy.signal


locale.setlocale(locale.LC_ALL, 'fi_FI')

def format_func(value, tick_number):

   N = int(np.round(value/10))
   if N == 0:
       return "0"
   else:
       return r"${0}\pv$".format(N)
       

def cut_by_dates(dfx, start_date, end_date): mask = (dfx['Date'] >= start_date) & (dfx['Date'] <= end_date) dfx2 = dfx.loc[mask] #print(dfx2) return(dfx2)


def load_country_cases(maa): dfin = pd.read_csv('https://datahub.io/core/covid-19/r/countries-aggregated.csv', parse_dates=['Date']) countries = [maa] dfin = dfin[dfin['Country'].isin(countries)] #print (head(dfin)) #quit(-1) selected_columns = dfin"Date", "Confirmed", "Recovered", "Deaths" df2 = selected_columns.copy()

df=df2 len1=len(df["Date"]) aktiv2= [None] * len1 for n in range(0,len1-1): aktiv2[n]=0

dates=df['Date'] rekov1=df['Recovered'] konf1=df['Confirmed'] death1=df['Deaths'] #print(dates) spanni=6

#print(rekov1)

#quit(-1)

rulla = rekov1.rolling(window=spanni).mean() rulla2 = rulla.rolling(window=spanni).mean()


tulosrulla=rulla2 tulosrulla= tulosrulla.replace(np.nan, 0) tulosrulla=np.array(tulosrulla).astype(int) rulla2=tulosrulla

x=np.linspace(0,len1,len1); #print("kupla") #print(tulosrulla)

#print(konf1) #print(death1) #print(aktiv2) konf1=np.array(konf1).astype(int) death1=np.array(death1).astype(int) #print(konf1) #quit(-1)

for n in range(0,(len1-1)): #print("luzmu") rulla2[n]=tulosrulla[n] #print ("luzmu2") #aktiv2[n]=konf1[n]-death1[n]-rulla2[n] aktiv2[n]=konf1[n] #print(rulla2[n])

#quit(-1)

#aktiv3=np.array(aktiv2).astype(int)

dailycases1= [0] * len1 dailydeaths1= [0] * len1

for n in range(1,(len1-1)): dailycases1[n]=konf1[n]-konf1[n-1] if (dailycases1[n]<0): dailycases1[n]=0

for n in range(1,(len1-1)): dailydeaths1[n]=death1[n]-death1[n-1] if (dailydeaths1[n]<0): dailydeaths1[n]=0

#quit(-1) df.insert (2, "Daily_Cases", dailycases1) df.insert (3, "Daily_Deaths", dailydeaths1) df['ActiveEst']=aktiv2 #print (df) dfout = df'Date', 'Confirmed','Deaths','Recovered', 'ActiveEst','Daily_Cases','Daily_Deaths' #print(df) #print(dfout) print(".") return(dfout)


def load_fin_wiki_data(): url="https://fi.wikipedia.org/wiki/Suomen_koronaviruspandemian_aikajana" response = requests.get(url) soup = BeautifulSoup(response.text, 'lxml') table = soup.find_all('table')[0] # Grab the first table df = pd.read_html(str(table))[0] #print(df) #Päivä Tapauksia Uusia tapauksia Sairaalassa Teholla Kuolleita Uusia kuolleita Toipuneita

df2 = df'Tapauksia','Uusia tapauksia','Sairaalassa','Teholla','Kuolleita','Uusia kuolleita','Toipuneita'

kaikkiatapauksia=df['Tapauksia'] toipuneita=df['Toipuneita'] uusiatapauksia=df['Uusia tapauksia'] sairaalassa=df['Sairaalassa'] teholla=df['Teholla'] kuolleita=df['Kuolleita'] uusiakuolleita=df['Uusia kuolleita']

len1=len(kaikkiatapauksia)

kaikkiatapauksia2=[] toipuneita2=[] uusiatapauksia2=[] sairaalassa2=[] teholla2=[] kuolleita2=[] uusiakuolleita2=[]

for n in range(0,len1): elem0=kaikkiatapauksia[n] elem1 = .join(c for c in elem0 if c.isdigit()) elem2=int(elem1) kaikkiatapauksia2.append(elem2) elem0=toipuneita[n] elem1 = .join(c for c in elem0 if c.isdigit()) #toipuneita2.append(int(elem1)) if (elem1!=): toipuneita2.append(int(elem1)) else: toipuneita2.append(0)

elem0=uusiatapauksia[n] elem1 = .join(c for c in elem0 if c.isdigit()) uusiatapauksia2.append(int(elem1)) elem0=sairaalassa[n] #elem1 = .join(c for c in elem0 if c.isdigit()) sairaalassa2.append(int(elem0)) elem0=teholla[n] #elem1 = .join(c for c in elem0 if c.isdigit()) teholla2.append(int(elem0)) elem0=kuolleita[n] #elem1 = .join(c for c in elem0 if c.isdigit()) kuolleita2.append(int(elem0)) elem0=uusiakuolleita[n] #elem1 = .join(c for c in elem0 if c.isdigit()) uusiakuolleita2.append(int(elem0))

#kaikkiatapauksia3=np.array(kaikkiatapauksia2).astype(int) #print("---") #print(kaikkiatapauksia2) #print(toipuneita2)

kaikkiatapauksia3=np.array(kaikkiatapauksia2).astype(int) toipuneita3=np.array(toipuneita2).astype(int)

uusiatapauksia3=np.array(uusiatapauksia2).astype(int) sairaalassa3=np.array(sairaalassa2).astype(int) teholla3=np.array(teholla2).astype(int) kuolleita3=np.array(kuolleita2) .astype(int) uusiakuolleita3=np.array(uusiakuolleita2).astype(int)

for n in range(1,len1): toipu0=toipuneita3[n] if (toipu0==0): paikka=n toipui=toipu1 break toipu1=toipu0


## oletus: toipuu suureksi osaksi akuutista vaiheesta 3 viikossa ## todellisuudessa yli 60% kärsii ainakin yhdestä pitkäkestoisesta oireesta

for n in range(paikka,len1): toipui=toipui+uusiatapauksia3[n-21]-uusiakuolleita3[n] toipuneita3[n]=toipui #print(toipuneita3[n])


napapaiva1 = np.datetime64("2020-04-01") timedelta1= np.timedelta64(len(kaikkiatapauksia3),'D') napapaiva2 = napapaiva1+timedelta1

#dada1 = np.linspace(napapaiva1.astype('f8'), napapaiva2.astype('f8'), dtype='<M8[D]') dada1 = pd.date_range(napapaiva1, napapaiva2, periods=len(kaikkiatapauksia3)).to_pydatetime()

#print(dada1)

data = {'Date':dada1, 'Kaikkia tapauksia':kaikkiatapauksia3, "Uusia tapauksia":uusiatapauksia3, "Sairaalassa":sairaalassa3, "Teholla":teholla3, "Kuolleita":kuolleita3, "Uusiakuolleita":uusiakuolleita3, "Toipuneita":toipuneita3 }

df2 = pd.DataFrame(data)

#print(kaikkiatapauksia3) #print ("Fin wiki data.") return(df2)

def get_solanpaa_fi_data(): url="https://covid19.solanpaa.fi/data/fin_cases.json" response = requests.get(url,allow_redirects=True) open('solanpaa_fi.json', 'w').write(response.text) with open('solanpaa_fi.json') as f: sola1=pd.read_json(f)


sola1_top = sola1.head() #print (sola1_top) #Rt […] #Rt_lower […] #Rt_upper […] #Rt_lower50 […] #Rt_upper50 […] #Rt_lower90 […] #Rt_upper90 […] #new_cases_uks […] #new_cases_uks_lower50 […] #new_cases_uks_upper50 […] #new_cases_uks_lower90 […] #new_cases_uks_upper90 […] #new_cases_uks_lower […] #new_cases_uks_upper […]

dada1=sola1["date"] casa1=sola1["cases"] death1=sola1["deaths"] newcasa1=sola1["new_cases"] newdeath1=sola1["new_deaths"] hosp1=sola1["hospitalized"] icu1=sola1["in_icu"] rt=sola1["Rt"] newcasauks=sola1["new_cases_uks"]


print(dada1) len1=len(dada1) toipuneita=np.zeros(len1) toipuneita=toipuneita*0 aktiivisia=toipuneita


toipui=0 for n in range(0,len1):

if(n>21): toipui=toipui+newcasa1[n-21]-newdeath1[n]

toipuneita[n]=toipui

aktiivisia=casa1-toipuneita-death1 #print(toipuneita)

#print("KKKK") #print (dada1[0+21])

data = {'Date':dada1, 'Tapauksia':casa1, 'Kuolemia':death1, 'Sairaalassa':hosp1, 'Teholla':icu1, 'Uusia_tapauksia':newcasa1, 'Uusia_kuolemia':newdeath1, 'R':rt, 'Uusia_tapauksia_ennuste':newcasauks, 'Toipuneita':toipuneita, 'Aktiivisia':aktiivisia, }

df = pd.DataFrame(data)

return(df)


def get_ecdc_fi_hospital_data(): url="https://opendata.ecdc.europa.eu/covid19/hospitalicuadmissionrates/json/" response = requests.get(url,allow_redirects=True) open('ecdc_hoic.json', 'w').write(response.text) with open('ecdc_hoic.json') as f: sola1=pd.read_json(f)

#print(sola1.head())

sola2=sola1.loc[sola1["country"]=='Finland']

#sola2.to_csv (r'ecdc_hospital_finland_origo.csv', index = True, header=True, sep=';')


#print(sola2.head())

dada0=sola2["date"] hosp0=sola2["value"] country0=sola2["country"]

len1=len(dada0) len2=int(len1/2) #print (len2)

dada1=dada0[1:len2-1] hosp1=np.array(hosp0[1:len2-1]) icu1=np.array(hosp0[len2:len1])

#print(dada1) print (icu1) quit(-1)


data = {'Date':dada1, 'Sairaalassa':hosp1, 'Teholla':icu1 }

df = pd.DataFrame(data)

df.to_csv (r'ecdc_hospital_finland.csv', index = True, header=True, sep=';')

return df

def get_thl_fi_open_data(): ## thl open data, 1.2.2021

url1="https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?row=measure-444833&column=dateweek20200101-508804L"

url2="https://sampo.thl.fi/pivot/prod/fi/epirapo/covid19case/fact_epirapo_covid19case.json?row=measure-492118&column=dateweek20200101-508804L"

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} response1 = requests.get(url1,headers=headers,allow_redirects=True) open('thl_cases1.json', 'w').write(response1.text) with open('thl_cases1.json') as json_file1: data1 = json.load(json_file1) #print(data1)

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} response2 = requests.get(url2,headers=headers,allow_redirects=True) open('thl_deaths1.json', 'w').write(response2.text) with open('thl_deaths1.json') as json_file2: data2 = json.load(json_file2) #print(data1)


k2=data1['dataset'] k3=k2['dimension'] k4=k3['dateweek20200101'] k5=k4['category'] k6=k5['label'] k8a=k6.keys() k8b=k6.values() d1=k2['value']

m2=data2['dataset'] m3=m2['dimension'] m4=m3['dateweek20200101'] m5=m4['category'] m6=m5['label'] m8a=m6.keys() m8b=m6.values() d2=m2['value']

#print (d1)

d1a=d1.keys() d1b=d1.values() d2a=d2.keys() d2b=d2.values()

#print (k8b) #print (d1a) #print (d1b) #print (d2a) #print (d2b)

len1=len(k8b)

#print(len1)

#dates0=np.datetime64(np.array(list(k8b))) dates0=list(k8b)

casekeys=np.array(list(d1a)).astype(int) cases0=np.array(list(d1b)).astype(int) deathkeys=np.array(list(d2a)).astype(int) deaths0=np.array(list(d2b)).astype(int)

#print(dates0) #print(casekeys) #print(cases0)


kasetab1=np.empty(len1).astype(int) kasetab1[casekeys]=cases0 deathtab1=np.empty(len1).astype(int) deathtab1[deathkeys]=deaths0

#print (len(dates0)) #print (len(kasetab1))

datax = {'Date':dates0, 'Uusia_tapauksia':kasetab1, 'Uusia_kuolemia':deathtab1 }

df = pd.DataFrame(datax)


return(df)


    1. set dates


                          1. main proge


  1. df=load_fin_wiki_data()

df=get_solanpaa_fi_data()

  1. print(df)
  2. quit(-1)

df2=cut_by_dates(df, paiva1,paiva2)

  1. print(df2)
  2. quit(-1)

dates0=df2['Date']

  1. cases0=df2['Daily_Cases']

dailycases1=df2['Uusia_tapauksia'] dailydeaths1=df2['Uusia_kuolemia']

konf1=np.array(df2['Tapauksia']) rekov1=np.array(df2['Toipuneita']) death1=np.array(df2['Kuolemia'])


konf_alussa=konf1[0] rekov_alussa=rekov1[0] death_alussa=death1[0]


konf2=np.array(konf1)-konf_alussa

  1. print(konf2)
  1. quit(-1)


rekov2=np.array(rekov1)-rekov_alussa death2=np.array(death1)-death_alussa


aktiv_b=np.array(konf2)-np.array(rekov2)-np.array(death2) aktiv_c = scipy.signal.savgol_filter(aktiv_b,7, 1)

dates_a=dates0


fig, ax = plt.subplots(constrained_layout=True)

ax.legend(fontsize=14)

ax2=ax.twinx()

  1. secax = ax.secondary_xaxis('top')
  2. secax.set_xlabel('paivia')

plt.xticks(fontsize=18)

plt.yticks(fontsize=18, rotation=0)

ax.set_xlabel('Kuukausi 2020-2021', color='g',size=16) ax.set_ylabel('Kuolleita', color='k',size=18) ax.set_title('Koronavirusepidemia', color='b',size=22) ax2.set_ylabel('Tapauksia', color='#7f0000', size=18)


ax.tick_params(axis='both', which='major', labelsize=18)


ax2.plot(dates_a, konf2,'y.-',linewidth=4.0, label='tapauksia') ax2.plot(dates_a, aktiv_c,'r-',linewidth=4.0, label='sairaana') ax2.plot(dates_a, rekov2,'g-',linewidth=4.0, label='akuutein vaihe ohi') ax.plot(dates_a, death2,'k-',linewidth=4.0, label='kuolleita')


locator1 = mdates.MonthLocator() # every month

dateformat1 = mdates.DateFormatter('%b')

ax.xaxis.set_major_formatter(dateformat1) ax.xaxis.set_major_locator(locator1)


ax2.yaxis.set_major_locator(MaxNLocator(integer=True))

ax.legend(fontsize=14, loc="upper left") ax2.legend(fontsize=14, loc="center left")


plt.show()

plt.savefig('kuva.svg')





Licensing

edit
I, the copyright holder of this work, hereby publish it under the following license:
w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.

File history

Click on a date/time to view the file as it appeared at that time.

(newest | oldest) View (newer 10 | ) (10 | 20 | 50 | 100 | 250 | 500)
Date/TimeThumbnailDimensionsUserComment
current06:56, 16 July 2021Thumbnail for version as of 06:56, 16 July 20211,282 × 589 (104 KB)Merikanto (talk | contribs)update
07:31, 25 June 2021Thumbnail for version as of 07:31, 25 June 20211,143 × 570 (104 KB)Merikanto (talk | contribs)Update
07:58, 4 June 2021Thumbnail for version as of 07:58, 4 June 20211,092 × 375 (95 KB)Merikanto (talk | contribs)Update
13:40, 13 May 2021Thumbnail for version as of 13:40, 13 May 20211,135 × 437 (94 KB)Merikanto (talk | contribs)Update
11:49, 22 April 2021Thumbnail for version as of 11:49, 22 April 2021947 × 398 (89 KB)Merikanto (talk | contribs)Update
12:48, 16 April 2021Thumbnail for version as of 12:48, 16 April 20211,031 × 432 (87 KB)Merikanto (talk | contribs)update
12:19, 23 March 2021Thumbnail for version as of 12:19, 23 March 20211,110 × 431 (85 KB)Merikanto (talk | contribs)Upload
19:30, 26 February 2021Thumbnail for version as of 19:30, 26 February 2021992 × 432 (76 KB)Merikanto (talk | contribs)Upload
14:25, 22 January 2021Thumbnail for version as of 14:25, 22 January 2021884 × 473 (74 KB)Merikanto (talk | contribs)Update
11:57, 22 January 2021Thumbnail for version as of 11:57, 22 January 2021913 × 455 (68 KB)Merikanto (talk | contribs)Update of layout
(newest | oldest) View (newer 10 | ) (10 | 20 | 50 | 100 | 250 | 500)

There are no pages that use this file.

Metadata