cumulated_exposure method in models.py

This commit is contained in:
Luis Aleixo 2021-07-23 09:15:25 +02:00
parent 85045f02db
commit bc38f5ec7a
2 changed files with 8 additions and 5 deletions

View file

@ -131,7 +131,7 @@ def plot(times, concentrations, model: models.ExposureModel):
)
#See CERN-OPEN-2021-004, p. 15, eq. 16. - Cumulative Dose
factor = 0.6 * np.mean(model.exposed.activity.inhalation_rate) * (1 - model.exposed.mask.η_inhale)
cumulated_exposure = model.cumulated_exposure()
present_indexes = np.array([model.exposed.person_present(t) for t in times])
modified_concentrations = np.array(concentrations)
modified_concentrations[~present_indexes] = 0
@ -139,7 +139,7 @@ def plot(times, concentrations, model: models.ExposureModel):
qds = [np.trapz(modified_concentrations[:i + 1], times[:i + 1]) * factor for i in range(len(times))]
ax1 = ax.twinx()
ax1.plot(datetimes, qds, label='Mean cumulative dose', color='#1f77b4', linestyle='dotted')
ax1.plot(datetimes, cumulated_exposure, label='Mean cumulative dose', color='#1f77b4', linestyle='dotted')
ax1.spines["right"].set_linestyle("--")
ax1.spines["right"].set_linestyle((0,(1,5)))
ax1.set_ylabel('Mean cumulative dose\n(virion)', fontsize=14)

View file

@ -876,15 +876,18 @@ class ExposureModel:
return exposure * self.repeats
def infection_probability(self) -> _VectorisedFloat:
def cumulated_exposure(self) -> _VectorisedFloat:
exposure = self.quanta_exposure()
inf_aero = (
return (
self.exposed.activity.inhalation_rate *
(1 - self.exposed.mask.inhale_efficiency()) *
exposure * self.fraction_deposited
)
def infection_probability(self) -> _VectorisedFloat:
inf_aero = self.cumulated_exposure()
# Probability of infection.
return (1 - np.exp(-inf_aero)) * 100