def fit_IDF(p_reported, ifr): name = ['Île de France'] departements, size = build_patches.patches_from_regions(name) data = gather_hosp_data(departements[0]) fitter = lockdown.LockdownFitter(data, name[0], size[0], '2020-03-16') fitter.setup_fit('Before lockdown', '2020-03-01', '2020-03-27', [17], columns=['Hospital deaths']) fitter.setup_fit('Lockdown', '2020-03-16', '2020-05-11', [18, 28, 28]) fitter.setup_fit('Easing of lockdown', '2020-05-11', '2020-06-10', [10, 15, 15]) fitter.setup_fit('Second wave', '2020-07-10', '2020-10-30', [18, 28, 28]) fitter.setup_fit('Second lockdown', '2020-10-30', '2020-12-01', [13, 18, 18]) fitter.setup_fit('Easing of second lockdown', '2020-11-25', '2020-12-18', [10, 15, 15]) fitter.compute_growth_rates(verbose=True) try: EI_dist = lockdown.EI_dist_covid(p_reported) fitter.prepare_sir(EI_dist, ifr) for fit in fitter.fits[2:]: if fit.name == 'Second lockdown': continue fitter.adjust_date_of_change(fit.name, 'Hospital admissions') fitter.compute_sir('2020-12-31') except Exception as error: print('Error !!!!!!') print(error) print(traceback.format_exc()) finally: return fitter
def fit_PACA(p_reported, ifr, curfew=True): name = ["Provence-Alpes-Côte d’Azur"] departements, size = build_patches.patches_from_regions(name) data = gather_hosp_data(departements[0]) fitter = lockdown.LockdownFitter(data, name[0], size[0], '2020-03-16') fitter.setup_fit('Before lockdown', '2020-03-01', '2020-03-27', [17], columns=['Hospital deaths']) fitter.setup_fit('Lockdown', '2020-03-16', '2020-05-11', [18, 28, 28]) fitter.setup_fit('Easing of lockdown', '2020-05-01', '2020-06-20', [10, 15], ['Hospital admissions', 'Hospital deaths']) fitter.setup_fit('Second wave (1/3)', '2020-06-28', '2020-09-07', [18, 48, 32]) fitter.setup_fit('Second wave (2/3)', '2020-09-01', '2020-10-10', [15, 18, 18]) fitter.setup_fit('Second wave (3/3)', '2020-09-25', '2020-10-20', [15, 18, 18]) if curfew: fitter.setup_fit('Curfew', '2020-10-16', '2020-11-10', [8], ['Hospital admissions']) fitter.setup_fit('Second lockdown', '2020-10-30', '2020-12-01', [13, 15, 15]) fitter.setup_fit('Easing of second lockdown', '2020-11-29', '2020-12-18', [10, 15, 15]) fitter.compute_growth_rates(verbose=True) try: EI_dist = lockdown.EI_dist_covid(p_reported) fitter.prepare_sir(EI_dist, ifr) for fit in fitter.fits[2:]: if fit.name in [ 'Second lockdown', 'Curfew', 'Easing of second lockdown' ]: continue fitter.adjust_date_of_change(fit.name, 'Hospital admissions') fitter.compute_sir('2020-12-31') except Exception as error: print('Error !!!!!!') print(error) print(traceback.format_exc()) finally: return fitter
param_values = np.loadtxt("param_values_delays.txt", float) except (OSError, Change): param_values = saltelli.sample(inputs, 1000, calc_second_order = False) np.savetxt("param_values_delays.txt", param_values) try: if COMPUTE_AGAIN or CHANGE_INPUT: raise Change('output') output_values = np.loadtxt('output_values_delays.txt', float) except (OSError, Change): output_values = np.zeros((2, np.size(param_values, 0))) ## prepare lockdown fitter patches, sizes = build_patches.patches_from_region_list(region_list) data_patches = gather_data(patches, SOS_medecins=False, include_early=False) fitter = lockdown.LockdownFitter(data_patches[0], names[0], sizes[0], '2020-03-16') fitter.setup_fit('Before lockdown', '2020-03-01', '2020-03-26', [17], columns = ['Hospital deaths']) fitter.setup_fit('Lockdown', '2020-03-16', '2020-05-11', [18, 28, 28]) fitter.compute_growth_rates() for (i, param) in enumerate(param_values): print(100.*i/np.size(param_values, 0)) E_dist, I_dist = lockdown.EI_dist(param[0], param[1], 10, n=10) EI_dist = lockdown.product_dist(E_dist, I_dist) lockdown_datetime = fitter.datetime_lockdown + date.timedelta(days = param[2]) fitter.datetime_lockdown = lockdown_datetime try: fitter.prepare_sir(EI_dist, param[3], verbose = False) except AssertionError: continue fitter.dates_of_change['Lockdown'] = lockdown_datetime.strftime(fitter.date_format)
data_patches = gather_data(patches, SOS_medecins=False, include_early=False) deces = 'Décès hospitaliers dus au Covid-19' admissions = 'Admissions à l\'hôpital liées au Covid-19' # data_patches[0] = data_patches[0].drop(['ICU admissions'], axis = 1) for i in range(len(names)): data_patches[i].columns = [admissions, deces, 'Admissions en réanimation'] patches = [] for (i, name) in enumerate(names): data_patches[i] = data_patches[i].drop( data_patches[i]['2020-11-01':].index) patches.append( lockdown.LockdownFitter(data_patches[i], name, sizes[i], '2020-03-16')) for patch in patches: patch.setup_fit('avant le confinement', '2020-03-01', '2020-03-25', [17], columns=[deces]) patch.setup_fit('confinement', '2020-03-16', '2020-06-02', [18, 28, 28]) ## Setup fits in Ile de France patches[idf].setup_fit('été', '2020-06-02', '2020-09-10', [18, 25, 25]) patches[idf].setup_fit('deuxième vague', '2020-09-01', '2020-10-30', [10, 15, 15]) ## Setup fits in Grand Est patches[gdest].setup_fit('déconfinement', '2020-05-15', '2020-07-01',