From df090a7952f19d86b87367df80f9b9ddb5886a74 Mon Sep 17 00:00:00 2001 From: Andrejh Date: Thu, 18 Feb 2021 23:38:20 +0100 Subject: [PATCH 1/3] Modify CDF plot title & colors --- cara/montecarlo.py | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/cara/montecarlo.py b/cara/montecarlo.py index d3f2f480..097ddb6d 100644 --- a/cara/montecarlo.py +++ b/cara/montecarlo.py @@ -358,7 +358,7 @@ class MCExposureModel: exposure = np.zeros(self.concentration_model.infected.samples) for start, stop in self.exposed.presence.boundaries(): - times = np.arange(start, stop, 0.01) + times = np.arange(start, stop, 0.1) concentrations = np.asarray([self.concentration_model.concentration(t) for t in times]) integrals = np.trapz(concentrations, times, axis=0) exposure += integrals @@ -670,8 +670,8 @@ def generate_cdf_curves_vs_qr(masked: bool = False, samples: int = 200000, qid: fig, axs = plt.subplots(3, 1, sharex='all') # TODO: Insert title and y-label - plt.suptitle("INSERT TITLE HERE") - fig.text(0.02, 0.5, 'INSERT Y-LABEL HERE', va='center', rotation='vertical') + plt.suptitle("$F(qR|qID=$" + str(qid) + "$)$") + fig.text(0.02, 0.5, 'Probability', va='center', rotation='vertical') scenarios = [MCInfectedPopulation( number=1, @@ -687,7 +687,7 @@ def generate_cdf_curves_vs_qr(masked: bool = False, samples: int = 200000, qid: right = max(np.max(qrs) for qrs in qr_values) # Colors can be changed here - colors = ['lightgreen', 'lightblue', 'pink'] + colors = ['lightgrey', 'grey', 'black'] breathing_rates = ['Seated', 'Light activity', 'Heavy activity'] activities = ['Breathing', 'Speaking', 'Shouting'] @@ -871,7 +871,7 @@ exposure_models = [MCExposureModel( concentration_model=MCConcentrationModel( room=models.Room(volume=45), ventilation=models.SlidingWindow( - active=models.PeriodicInterval(period=120, duration=10), + active=models.PeriodicInterval(period=120, duration=120), inside_temp=models.PiecewiseConstant((0, 24), (293,)), outside_temp=models.PiecewiseConstant((0, 24), (283,)), window_height=1.6, opening_length=0.6, @@ -884,6 +884,7 @@ exposure_models = [MCExposureModel( expiratory_activity=1, samples=2000000, breathing_category=1, + expiratory_activity_weights=(0.7, 0.3, 0) ) ), exposed=models.Population( @@ -894,9 +895,40 @@ exposure_models = [MCExposureModel( ) ) for qid in (100, 60)] -print(np.mean(large_population_baselines[0].infection_probability())) +exposure_models_2 = [MCExposureModel( + concentration_model=MCConcentrationModel( + room=models.Room(volume=33), + ventilation=models.SlidingWindow( + active=models.PeriodicInterval(period=120, duration=10), + inside_temp=models.PiecewiseConstant((0, 24), (293,)), + outside_temp=models.PiecewiseConstant((0, 24), (283,)), + window_height=1.6, opening_length=0.6, + ), + infected=MCInfectedPopulation( + number=1, + presence=models.SpecificInterval(((0, 4), (5, 9))), + masked=True, + virus=MCVirus(halflife=1.1, qID=qid), + expiratory_activity=4, + samples=2000000, + breathing_category=1, + expiratory_activity_weights=(0.7, 0.1, 0) + ) + ), + exposed=models.Population( + number=2, + presence=models.SpecificInterval(((0, 4), (5, 9))), + activity=models.Activity.types['Seated'], + mask=models.Mask.types['FFP2'] + ) +) for qid in (100, 60)] -#generate_cdf_curves_vs_qr(masked=False) + +#print(np.mean(exposure_models_2[1].infection_probability())) +#print(np.mean(exposure_models_2[1].infection_probability())) +#plot_pi_vs_viral_load([exposure_models[1],exposure_models_2[1]], labels=['B.1.1.7 - Guideline', 'B.1.1.7 - w/o masks']) + +generate_cdf_curves_vs_qr(masked=False,qid=500) # rs = [model.expected_new_cases() for model in large_population_baselines] # print(f"R0 - original variant:\t{np.mean(rs[0])}") From 5ee67f1a34acd0ce3a7bd0c35f16ea24c9e82fba Mon Sep 17 00:00:00 2001 From: Andrejh Date: Fri, 19 Feb 2021 00:11:40 +0100 Subject: [PATCH 2/3] adjustments to CDF plot --- cara/montecarlo.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cara/montecarlo.py b/cara/montecarlo.py index 097ddb6d..fa0988d5 100644 --- a/cara/montecarlo.py +++ b/cara/montecarlo.py @@ -670,8 +670,8 @@ def generate_cdf_curves_vs_qr(masked: bool = False, samples: int = 200000, qid: fig, axs = plt.subplots(3, 1, sharex='all') # TODO: Insert title and y-label - plt.suptitle("$F(qR|qID=$" + str(qid) + "$)$") - fig.text(0.02, 0.5, 'Probability', va='center', rotation='vertical') + plt.suptitle("$F(qR|qID=$" + str(qid) + "$)$", y=0.93) + fig.text(0.02, 0.5, 'Cumulative Distribution Function', va='center', rotation='vertical') scenarios = [MCInfectedPopulation( number=1, @@ -702,7 +702,8 @@ def generate_cdf_curves_vs_qr(masked: bool = False, samples: int = 200000, qid: axs[i].set_yticklabels(['0.0', '0.5', '1.0']) axs[i].yaxis.set_label_position("right") axs[i].set_ylabel(activities[i]) - axs[i].legend(handles=lines, loc='upper left') + axs[i].grid(linestyle='--') + axs[0].legend(handles=lines, loc='upper left') plt.xlabel('qR [$q\;h^{-1}$]') tick_positions = np.arange(int(np.ceil(left)), int(np.ceil(right)), 2) @@ -928,7 +929,7 @@ exposure_models_2 = [MCExposureModel( #print(np.mean(exposure_models_2[1].infection_probability())) #plot_pi_vs_viral_load([exposure_models[1],exposure_models_2[1]], labels=['B.1.1.7 - Guideline', 'B.1.1.7 - w/o masks']) -generate_cdf_curves_vs_qr(masked=False,qid=500) +generate_cdf_curves_vs_qr(masked=False,qid=100) # rs = [model.expected_new_cases() for model in large_population_baselines] # print(f"R0 - original variant:\t{np.mean(rs[0])}") From 78eb8565cd15f61f3893577967f21c0cfd4d543c Mon Sep 17 00:00:00 2001 From: Andrejh Date: Fri, 19 Feb 2021 08:49:30 +0100 Subject: [PATCH 3/3] further adjustments to CDF plot --- cara/montecarlo.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cara/montecarlo.py b/cara/montecarlo.py index fa0988d5..6dfb0e03 100644 --- a/cara/montecarlo.py +++ b/cara/montecarlo.py @@ -670,8 +670,8 @@ def generate_cdf_curves_vs_qr(masked: bool = False, samples: int = 200000, qid: fig, axs = plt.subplots(3, 1, sharex='all') # TODO: Insert title and y-label - plt.suptitle("$F(qR|qID=$" + str(qid) + "$)$", y=0.93) - fig.text(0.02, 0.5, 'Cumulative Distribution Function', va='center', rotation='vertical') + plt.suptitle("$F(qR|qID=$" + str(qid) + "$)$",fontsize=12, y=0.93) + fig.text(0.02, 0.5, 'Cumulative Distribution Function', va='center', rotation='vertical',fontsize=12) scenarios = [MCInfectedPopulation( number=1, @@ -929,7 +929,7 @@ exposure_models_2 = [MCExposureModel( #print(np.mean(exposure_models_2[1].infection_probability())) #plot_pi_vs_viral_load([exposure_models[1],exposure_models_2[1]], labels=['B.1.1.7 - Guideline', 'B.1.1.7 - w/o masks']) -generate_cdf_curves_vs_qr(masked=False,qid=100) +generate_cdf_curves_vs_qr(masked=False,qid=1000) # rs = [model.expected_new_cases() for model in large_population_baselines] # print(f"R0 - original variant:\t{np.mean(rs[0])}")