add ski expsoure models
This commit is contained in:
parent
dadabcbec4
commit
85564c2829
2 changed files with 163 additions and 20 deletions
|
|
@ -17,26 +17,32 @@ from cara.model_scenarios import *
|
||||||
#composite_plot_pi_vs_viral_load([shared_office_worst_model[1], shared_office_model[1], shared_office_better_model[1]],
|
#composite_plot_pi_vs_viral_load([shared_office_worst_model[1], shared_office_model[1], shared_office_better_model[1]],
|
||||||
# labels=['No mask &\nwindows closed', 'Baseline', 'Baseline +\nHEPA filter'],
|
# labels=['No mask &\nwindows closed', 'Baseline', 'Baseline +\nHEPA filter'],
|
||||||
# colors=['tomato', '#1f77b4', 'limegreen'],
|
# colors=['tomato', '#1f77b4', 'limegreen'],
|
||||||
# title='$P(I|qID)$ vs $vl$ - Shared office scenario',
|
# title='Shared office scenario',
|
||||||
# vl_points=200)
|
# vl_points=200)
|
||||||
#composite_plot_pi_vs_viral_load([classroom_model_no_vent[1], classroom_model[1], classroom_model_with_hepa[1], classroom_model_full_open_hepa[1]],
|
#composite_plot_pi_vs_viral_load([classroom_model_no_vent[1], classroom_model[1], classroom_model_with_hepa[1], classroom_model_full_open_multi[1], classroom_model_full_open_multi_masks[1]],
|
||||||
# labels=['Windows closed', 'Baseline:\n(windows 10min/2h)', 'Baseline:\n(windows 10min/2h)+\nHEPA', 'Multiple windows open +\nHEPA filter'],
|
# labels=['Windows closed', 'Baseline:(windows 10min/2h)', 'Baseline:(windows 10min/2h)\n+ HEPA', 'Multiple windows open', 'Multiple windows open\n+masks'],
|
||||||
# colors=['tomato','#1f77b4', 'seagreen', 'limegreen'],
|
# colors=['tomato','#1f77b4', 'dodgerblue', 'seagreen', 'limegreen'],
|
||||||
# title='',
|
# title='Classroom scenario',
|
||||||
# vl_points=200)
|
# vl_points=200)
|
||||||
|
|
||||||
#compare_concentration_curves([classroom_model_no_vent[1], classroom_model[1], classroom_model_with_hepa[1], classroom_model_full_open_hepa[1]],
|
composite_plot_pi_vs_viral_load([ski_cabin_model_60[1], ski_cabin_model_30[1], ski_cabin_model_20[1], ski_cabin_model_10[1]],
|
||||||
# labels=['Windows closed', 'Baseline:(windows 10min/2h)', 'Baseline:(windows 10min/2h) + HEPA', 'Multiple windows open + HEPA filter'],
|
labels=['60 min', '30 min', 'Baseline: 20 min', '10 min'],
|
||||||
|
colors=['tomato', 'lightsalmon', '#1f77b4', 'limegreen'],
|
||||||
|
title='Ski cabin scenario',
|
||||||
|
vl_points=200)
|
||||||
|
|
||||||
|
#compare_concentration_curves([classroom_model_no_vent[1], classroom_model[1], classroom_model_with_hepa[1], classroom_model_full_open_multi[1]],
|
||||||
|
# labels=['Windows closed', 'Baseline:(windows 10min/2h)', 'Baseline:(windows 10min/2h) + HEPA', 'Multiple windows open'],
|
||||||
# colors=['tomato','#1f77b4', 'seagreen', 'limegreen'],
|
# colors=['tomato','#1f77b4', 'seagreen', 'limegreen'],
|
||||||
# title='Classroom scenario'
|
# title='Classroom scenario'
|
||||||
# )
|
# )
|
||||||
|
|
||||||
compare_concentration_curves([waiting_room_model[1], waiting_room_model_full_summer[1],
|
#compare_concentration_curves([waiting_room_model[1], waiting_room_model_full_summer[1],
|
||||||
waiting_room_model_full_winter[1], waiting_room_model_periodic_winter[1]],
|
# waiting_room_model_full_winter[1], waiting_room_model_periodic_winter[1]],
|
||||||
labels=['Baseline:(windows closed)', 'Windows open (summer)', 'Windows open (winter)', 'Windows open 5min/20min (winter)'],
|
# labels=['Baseline:(windows closed)', 'Windows open (summer)', 'Windows open (winter)', 'Windows open 5min/20min (winter)'],
|
||||||
colors=['#1f77b4', 'darkorange', 'deepskyblue', 'lightskyblue'],
|
# colors=['#1f77b4', 'darkorange', 'deepskyblue', 'lightskyblue'],
|
||||||
title='Waiting room scenario'
|
# title='Waiting room scenario'
|
||||||
)
|
# )
|
||||||
|
|
||||||
#plot_pi_vs_viral_load([shared_office_model[1]], labels=['Baseline'],title='')
|
#plot_pi_vs_viral_load([shared_office_model[1]], labels=['Baseline'],title='')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -311,7 +311,7 @@ classroom_model_with_hepa = [MCExposureModel(
|
||||||
)
|
)
|
||||||
)for qid in (100, 60)]
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
classroom_model_full_open_hepa = [MCExposureModel(
|
classroom_model_full_open_multi = [MCExposureModel(
|
||||||
concentration_model=MCConcentrationModel(
|
concentration_model=MCConcentrationModel(
|
||||||
room=models.Room(volume=160),
|
room=models.Room(volume=160),
|
||||||
ventilation=models.MultipleVentilation(
|
ventilation=models.MultipleVentilation(
|
||||||
|
|
@ -323,7 +323,7 @@ classroom_model_full_open_hepa = [MCExposureModel(
|
||||||
window_height=1.6, opening_length=4*0.6,
|
window_height=1.6, opening_length=4*0.6,
|
||||||
),
|
),
|
||||||
models.HEPAFilter(active=models.PeriodicInterval(period=120, duration=120),
|
models.HEPAFilter(active=models.PeriodicInterval(period=120, duration=120),
|
||||||
q_air_mech=800)
|
q_air_mech=0)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
infected=MCInfectedPopulation(
|
infected=MCInfectedPopulation(
|
||||||
|
|
@ -344,6 +344,39 @@ classroom_model_full_open_hepa = [MCExposureModel(
|
||||||
)
|
)
|
||||||
)for qid in (100, 60)]
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
|
classroom_model_full_open_multi_masks = [MCExposureModel(
|
||||||
|
concentration_model=MCConcentrationModel(
|
||||||
|
room=models.Room(volume=160),
|
||||||
|
ventilation=models.MultipleVentilation(
|
||||||
|
ventilations=(
|
||||||
|
models.SlidingWindow(
|
||||||
|
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=4*0.6,
|
||||||
|
),
|
||||||
|
models.HEPAFilter(active=models.PeriodicInterval(period=120, duration=120),
|
||||||
|
q_air_mech=0)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
infected=MCInfectedPopulation(
|
||||||
|
number=1,
|
||||||
|
presence=models.SpecificInterval(((0, 2), (2.5, 4), (5, 7), (7.5, 9))),
|
||||||
|
masked=True,
|
||||||
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
|
expiratory_activity=2,
|
||||||
|
samples=200000,
|
||||||
|
breathing_category=3,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
exposed=models.Population(
|
||||||
|
number=19,
|
||||||
|
presence=models.SpecificInterval(((0, 2), (2.5, 4), (5, 7), (7.5, 9))),
|
||||||
|
activity=models.Activity.types['Seated'],
|
||||||
|
mask=models.Mask.types['Type I']
|
||||||
|
)
|
||||||
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
######### Shared office exposure models ###########
|
######### Shared office exposure models ###########
|
||||||
shared_office_model = [MCExposureModel(
|
shared_office_model = [MCExposureModel(
|
||||||
concentration_model=MCConcentrationModel(
|
concentration_model=MCConcentrationModel(
|
||||||
|
|
@ -434,7 +467,7 @@ shared_office_better_model = [MCExposureModel(
|
||||||
) for qid in (100, 60)]
|
) for qid in (100, 60)]
|
||||||
|
|
||||||
######### Ski cabine exposure models ###########
|
######### Ski cabine exposure models ###########
|
||||||
ski_cabin_model = [MCExposureModel(
|
ski_cabin_model_20 = [MCExposureModel(
|
||||||
concentration_model=MCConcentrationModel(
|
concentration_model=MCConcentrationModel(
|
||||||
room=models.Room(volume=10),
|
room=models.Room(volume=10),
|
||||||
ventilation=models.HVACMechanical(
|
ventilation=models.HVACMechanical(
|
||||||
|
|
@ -443,7 +476,7 @@ ski_cabin_model = [MCExposureModel(
|
||||||
),
|
),
|
||||||
infected=MCInfectedPopulation(
|
infected=MCInfectedPopulation(
|
||||||
number=1,
|
number=1,
|
||||||
presence=models.SpecificInterval(((0, 0.33),)),
|
presence=models.SpecificInterval(((0, 20/60),)),
|
||||||
masked=True,
|
masked=True,
|
||||||
virus=MCVirus(halflife=1.1, qID=qid),
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
expiratory_activity=2,
|
expiratory_activity=2,
|
||||||
|
|
@ -454,7 +487,111 @@ ski_cabin_model = [MCExposureModel(
|
||||||
),
|
),
|
||||||
exposed=models.Population(
|
exposed=models.Population(
|
||||||
number=3,
|
number=3,
|
||||||
presence=models.SpecificInterval(((0, 0.33),)),
|
presence=models.SpecificInterval(((0, 20/60),)),
|
||||||
|
activity=models.Activity.types['Moderate activity'],
|
||||||
|
mask=models.Mask.types['Type I']
|
||||||
|
)
|
||||||
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
|
ski_cabin_model_10 = [MCExposureModel(
|
||||||
|
concentration_model=MCConcentrationModel(
|
||||||
|
room=models.Room(volume=10),
|
||||||
|
ventilation=models.HVACMechanical(
|
||||||
|
active=models.PeriodicInterval(period=120, duration=120),
|
||||||
|
q_air_mech=0.,
|
||||||
|
),
|
||||||
|
infected=MCInfectedPopulation(
|
||||||
|
number=1,
|
||||||
|
presence=models.SpecificInterval(((0, 10/60),)),
|
||||||
|
masked=True,
|
||||||
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
|
expiratory_activity=2,
|
||||||
|
samples=200000,
|
||||||
|
breathing_category=4,
|
||||||
|
expiratory_activity_weights=(0.7, 0.3, 0)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
exposed=models.Population(
|
||||||
|
number=3,
|
||||||
|
presence=models.SpecificInterval(((0, 10/60),)),
|
||||||
|
activity=models.Activity.types['Moderate activity'],
|
||||||
|
mask=models.Mask.types['Type I']
|
||||||
|
)
|
||||||
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
|
ski_cabin_model_25 = [MCExposureModel(
|
||||||
|
concentration_model=MCConcentrationModel(
|
||||||
|
room=models.Room(volume=10),
|
||||||
|
ventilation=models.HVACMechanical(
|
||||||
|
active=models.PeriodicInterval(period=120, duration=120),
|
||||||
|
q_air_mech=0.,
|
||||||
|
),
|
||||||
|
infected=MCInfectedPopulation(
|
||||||
|
number=1,
|
||||||
|
presence=models.SpecificInterval(((0, 25/60),)),
|
||||||
|
masked=True,
|
||||||
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
|
expiratory_activity=2,
|
||||||
|
samples=200000,
|
||||||
|
breathing_category=4,
|
||||||
|
expiratory_activity_weights=(0.7, 0.3, 0)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
exposed=models.Population(
|
||||||
|
number=3,
|
||||||
|
presence=models.SpecificInterval(((0, 25/60),)),
|
||||||
|
activity=models.Activity.types['Moderate activity'],
|
||||||
|
mask=models.Mask.types['Type I']
|
||||||
|
)
|
||||||
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
|
ski_cabin_model_30 = [MCExposureModel(
|
||||||
|
concentration_model=MCConcentrationModel(
|
||||||
|
room=models.Room(volume=10),
|
||||||
|
ventilation=models.HVACMechanical(
|
||||||
|
active=models.PeriodicInterval(period=120, duration=120),
|
||||||
|
q_air_mech=0.,
|
||||||
|
),
|
||||||
|
infected=MCInfectedPopulation(
|
||||||
|
number=1,
|
||||||
|
presence=models.SpecificInterval(((0, 30/60),)),
|
||||||
|
masked=True,
|
||||||
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
|
expiratory_activity=2,
|
||||||
|
samples=200000,
|
||||||
|
breathing_category=4,
|
||||||
|
expiratory_activity_weights=(0.7, 0.3, 0)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
exposed=models.Population(
|
||||||
|
number=3,
|
||||||
|
presence=models.SpecificInterval(((0, 30/60),)),
|
||||||
|
activity=models.Activity.types['Moderate activity'],
|
||||||
|
mask=models.Mask.types['Type I']
|
||||||
|
)
|
||||||
|
)for qid in (100, 60)]
|
||||||
|
|
||||||
|
ski_cabin_model_60 = [MCExposureModel(
|
||||||
|
concentration_model=MCConcentrationModel(
|
||||||
|
room=models.Room(volume=10),
|
||||||
|
ventilation=models.HVACMechanical(
|
||||||
|
active=models.PeriodicInterval(period=120, duration=120),
|
||||||
|
q_air_mech=0.,
|
||||||
|
),
|
||||||
|
infected=MCInfectedPopulation(
|
||||||
|
number=1,
|
||||||
|
presence=models.SpecificInterval(((0, 1),)),
|
||||||
|
masked=True,
|
||||||
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
|
expiratory_activity=2,
|
||||||
|
samples=200000,
|
||||||
|
breathing_category=4,
|
||||||
|
expiratory_activity_weights=(0.7, 0.3, 0)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
exposed=models.Population(
|
||||||
|
number=3,
|
||||||
|
presence=models.SpecificInterval(((0, 1),)),
|
||||||
activity=models.Activity.types['Moderate activity'],
|
activity=models.Activity.types['Moderate activity'],
|
||||||
mask=models.Mask.types['Type I']
|
mask=models.Mask.types['Type I']
|
||||||
)
|
)
|
||||||
|
|
@ -555,7 +692,7 @@ waiting_room_model_full_summer = [MCExposureModel(
|
||||||
number=1,
|
number=1,
|
||||||
presence=models.SpecificInterval(((0, 2),)),
|
presence=models.SpecificInterval(((0, 2),)),
|
||||||
masked=False,
|
masked=False,
|
||||||
virus=MCVirus(halflife=3.8, qID=qid),
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
expiratory_activity=4,
|
expiratory_activity=4,
|
||||||
samples=200000,
|
samples=200000,
|
||||||
breathing_category=1,
|
breathing_category=1,
|
||||||
|
|
@ -611,7 +748,7 @@ waiting_room_model_periodic_summer = [MCExposureModel(
|
||||||
number=1,
|
number=1,
|
||||||
presence=models.SpecificInterval(((0, 2),)),
|
presence=models.SpecificInterval(((0, 2),)),
|
||||||
masked=False,
|
masked=False,
|
||||||
virus=MCVirus(halflife=3.8, qID=qid),
|
virus=MCVirus(halflife=1.1, qID=qid),
|
||||||
expiratory_activity=4,
|
expiratory_activity=4,
|
||||||
samples=200000,
|
samples=200000,
|
||||||
breathing_category=1,
|
breathing_category=1,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue