diff --git a/cara/short_range_plots/model_scenarios.py b/cara/short_range_plots/model_scenarios.py index b1444997..48d4476d 100644 --- a/cara/short_range_plots/model_scenarios.py +++ b/cara/short_range_plots/model_scenarios.py @@ -66,7 +66,7 @@ def exposure_module_without_short_range(activity: str, expiration: str, mask: st ), infected=mc.InfectedPopulation( number=1, - virus=virus_distributions['SARS_CoV_2'], + virus=virus_distributions['SARS_CoV_2_OMICRON'], presence=mc.SpecificInterval(((8.5, 12.5),(13.5, 17.5),)), mask=exposure_mask, activity=activity_distributions[activity], @@ -89,11 +89,7 @@ def exposure_module_without_short_range(activity: str, expiration: str, mask: st ) return exposure_mc -def exposure_module_with_short_range(activity: str, - expiration: str, - mask: str, - sr_presence: list, - sr_activities: list): +def exposure_module_with_short_range(activity: str, expiration: str, mask: str, sr_presence: list, sr_activities: list): if mask == 'No mask': exposure_mask = models.Mask.types['No mask'] else: @@ -108,7 +104,7 @@ def exposure_module_with_short_range(activity: str, ), infected=mc.InfectedPopulation( number=1, - virus=virus_distributions['SARS_CoV_2'], + virus=virus_distributions['SARS_CoV_2_OMICRON'], presence=mc.SpecificInterval(((8.5, 12.5),(13.5, 17.5),)), mask=exposure_mask, activity=activity_distributions[activity], @@ -132,12 +128,47 @@ def exposure_module_with_short_range(activity: str, ) return exposure_mc +def exposure_module_with_short_range_outdoors(activity: str, expiration: str, mask: str, sr_presence: list, sr_activities: list): + if mask == 'No mask': + exposure_mask = models.Mask.types['No mask'] + else: + exposure_mask = mask_distributions[mask] -def baseline_model(activity: str, - expiration: str, - mask: str, - sr_presence: list, - sr_activities: list): + exposure_mc = mc.ExposureModel( + concentration_model=mc.ConcentrationModel( + room=models.Room(volume=100000, humidity=0.5), + ventilation=models.AirChange( + active=models.SpecificInterval(((0, 24),)), + air_exch=1000000, + ), + infected=mc.InfectedPopulation( + number=1, + virus=virus_distributions['SARS_CoV_2_OMICRON'], + presence=mc.SpecificInterval(((8.5, 12.5),)), + mask=exposure_mask, + activity=activity_distributions[activity], + expiration=build_expiration(expiration), + host_immunity=0., + ), + ), + short_range=mc.ShortRangeModel( + presence=[models.SpecificInterval(interval) for interval in sr_presence], + expirations=[short_range_expiration_distributions[activity] for activity in sr_activities], + dilutions=dilution_factor(activities=sr_activities, + distance=np.random.uniform(0.5, 1.5, 250000)), + ), + exposed=mc.Population( + number=14, + presence=mc.SpecificInterval(((8.5, 12.5),)), + activity=activity_distributions[activity], + mask=exposure_mask, + host_immunity=0., + ), + ) + return exposure_mc + + +def baseline_model(activity: str, expiration: str, mask: str, sr_presence: list, sr_activities: list): if mask == 'No mask': exposure_mask = models.Mask.types['No mask'] else: @@ -152,7 +183,7 @@ def baseline_model(activity: str, ), infected=mc.InfectedPopulation( number=1, - virus=virus_distributions['SARS_CoV_2'], + virus=virus_distributions['SARS_CoV_2_OMICRON'], presence=models.SpecificInterval(((8.5, 12.5),)), mask=exposure_mask, activity=activity_distributions[activity],