Exemple #1
0
Idea for a surge protector 

@author: Matt Bayer
"""

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime

import covid

#%% Load data

state = covid.read_covid_data_wi('state')

# rename
col_rename = {
    'Date': 'Date',
    'POS_NEW': 'Cases',
    'TEST_NEW': 'Tests',
    'DTH_NEW': 'Deaths',
    'HOSP_NEW': 'Hospitalizations'
}
state = state.rename(columns=col_rename)

#%% create weekly sums
weekly = state[col_rename.values()]
weekly = weekly.set_index('Date')
weekly = weekly.rolling(7).sum()
import urllib
from scipy import signal
import datetime

#%% Get the data
# Updated by UpdateData.py, just load from csv here

datapath = '.\\data'

csv_file_pop = datapath + '\\Population-Data-WI.csv'

# population data
popdata = covid.read_pop_data_wi(csv_file_pop)

# covid data
widata = covid.read_covid_data_wi()

#%% Read in currently hospitalized data

# manually downloaded file
hosp_file = "data\\COVID_Patients_(T)_data_2020-09-25.csv"
# url, but it only exists temporarily after I've accessed it manually, not sure how I can get a permalink
hosp_url = "https://bi.wisconsin.gov/vizql/t/DHS/w/EMResourceSnapshotPublic/v/EMResourceSnapshot/vudcsv/sessions/EBB037196DC0415A836E32982F8D0692-3:0/views/12341810530253913541_8071313743224759748?summary=true"

hosp = pd.read_csv(hosp_file)
# discard unnecessary "% change" column
hosp = hosp[['Report Date', 'Region', 'Total COVID Patients']]
# shorten names
hosp = hosp.rename(columns={
    'Report Date': 'Date',
    'Total COVID Patients': 'Patients'
Exemple #3
0
import datetime
import plotly.express as px
import json

#%% Get the data
# Updated by UpdateData.py, just load from csv here

datapath = '.\\data'

csv_file_pop = datapath + '\\Population-Data-WI.csv'

# population data
popdata = covid.read_pop_data_wi(csv_file_pop)

# covid data
widata = covid.read_covid_data_wi('county')

#%% Sum up population by region

# get mapping between county and region
region_file = 'data\\Regions-WI.csv'

region_map = pd.read_csv(region_file)
region_map = region_map[['County', 'Modified HERC Short']]
region_map = region_map.set_index('County')
region_map = region_map.squeeze()

# get a list of region names
region_list = region_map.unique()

# add WI overall to the map
    mke.plot(x='Date', y=['Tests', 'Cases'])
    mke.plot(x='Date', y='Positive Rate')

#%% Get the coviddata
# Updated by UpdateData.py, just load from csv here

datapath = '.\\data'
csv_file_pop = datapath + '\\Population-Data-WI.csv'

# population data
popdata = covid.read_pop_data_wi(csv_file_pop)

# covid data
# covid.update_covid_data_wi('tract')
covid_tract = covid.read_covid_data_wi('tract')
county = covid.read_covid_data_wi('county')

# filter on Milwaukee tracts
covid_tract_mke = covid_tract.loc[covid_tract.GEO == 'Census tract']
covid_tract_mke = covid_tract_mke.loc[covid_tract_mke.GEOID.apply(
    lambda x: x[0:5] == '55079')]

#%% County racial stats
mke = county.loc[county.NAME == 'Milwaukee']
mke.plot(x='Date', y=['POS_WHT', 'POS_BLK', 'POS_E_HSP'])

#%% County cases / hosp plot
# reduce and rename at state level
col_rename = {
    'Date': 'Date',
Exemple #5
0
#%% Get the data
# First retrieve data from server and save to csv file
# Second read data from the previously saved csv file
# comment sections if no need to re-download    

csv_file_covid = path + 'Covid-Data-WI.csv'
csv_file_pop = path + 'Population-Data-WI.csv'

# population data
# covid.download_pop_data_wi(csv_file_pop)
popdata = covid.read_pop_data_wi(csv_file_pop)

# covid data
covid.download_covid_data_wi(csv_file_covid)
widata = covid.read_covid_data_wi(csv_file_covid)



#%% Try to estimate true prevalence


loc = 'WI'
select = covid.select_data(widata, loc)
avg = select.rolling(window=7, center=True).mean()    

# offset tests by ten days?
cases = avg.POS_NEW
tests = avg.TEST_NEW
# tests.index -= pd.DateOffset(days=10)
Exemple #6
0
people['Date'] = pd.to_datetime(people['Date'])
people = people.set_index('Date')

people['Cases'] = pd.to_numeric(people['Cases'].str.replace(',', ''))
people['New people tested'] = pd.to_numeric(
    people['New people tested'].str.replace(',', ''))

test['New people tested'] = people['New people tested']
# cumulative sum of tests
test['Total people tested'] = test['New people tested'].expanding(1).sum()

# people.plot(y=['Cases', 'New people tested'])

#%% By Report

state = covid.read_covid_data_wi('state')
state = state.set_index('Date')
state['Tested'] = state['POSITIVE'] + state['NEGATIVE']

test['Total people tested (reported)'] = state['Tested']
test['New people tested (reported)'] = test[
    'Total people tested (reported)'].diff(1)

# compare cases test date to reported date
people['Cases (reported)'] = state['POS_NEW']
people.rolling(7).mean().plot(y=['Cases', 'Cases (reported)'])
# CAREFUL- I thought it was by TEST date,
# but I think it's actually by RESULT date.
# The plots LOOK not all that different, but that might be an artifact of just
# having very similar 7-day patterns. If I average it maybe I would see more
# of a delay like I would expect.
import pandas as pd
import geopandas as gpd

import covid

#%% Get the coviddata
# Updated by UpdateData.py, just load from csv here

datapath = '.\\data'
csv_file_pop = datapath + '\\Population-Data-WI.csv'

# population data
popdata = covid.read_pop_data_wi(csv_file_pop)

# covid data
tract = covid.read_covid_data_wi('tract')

#%% Tract population

tractpopfile = '.\\data\\geo\\Tract-Population-WI\\Tract-Population-WI.csv'
tractcsv = pd.read_csv(tractpopfile)
tractpop = pd.DataFrame({
    'GEOID': [s[9:] for s in tractcsv.iloc[1:, 0]],
    'NAME':
    tractcsv.iloc[1:, 1],
    'Population':
    pd.to_numeric(tractcsv.iloc[1:, 2]),
    'Margin of Error':
    pd.to_numeric(tractcsv.iloc[1:, 3], errors='coerce'),
})
# remove Wisconsin state
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime

import covid

#%% Update the data

# covid data by county
covid.update_covid_data_wi('state')
covid.update_covid_data_wi('county')

widata = covid.read_covid_data_wi('county')
state = covid.read_covid_data_wi('state')

# population data
datapath = '.\\data'
csv_file_pop = os.path.join(datapath, 'Population-Data-WI.csv')
# covid.download_pop_data_wi(csv_file_pop)
popdata = covid.read_pop_data_wi(csv_file_pop)

#%% Update Dashboard plots
plotpath = '.\\docs\\assets\\plotly'

# reduce and rename at state level
col_rename = {'POS_NEW': 'Cases', 'TEST_NEW': 'Tests', 'DTH_NEW': 'Deaths', 'HOSP_NEW': 'Hospitalizations'}
state = state.rename(columns=col_rename)