from person import Person import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation #haven't implemented real data, this is just a simulation for class Simulation(): def __init__(self): #SIMULATION PARAMETERS self.n=350 #number of individuals self.p_infected = 1 #initial percentage of infection (0-100%) self.r_contagious=2 #transmission radius (0-100) self.p_contagious= 10 #transmission rate (0-100%) self.p_isolation =75 #isolation rate (0-100%) self.t_infected=100 #recovery time in FRAMES (0-infinity) self.d_rate = 5 #death rate (0-100%) self.reinfect_rate = 0.05 #re-infect rate (0-100%) self.infected=0 self.dead=0 self.recovered=0 self.people=[] def instantiate(self): #for instantiating #Initialise loop. Creating all the individuals in random positions. Infecting some and putting some in quarantine. for i in range(self.n): p = Person(i,np.random.random()*100, np.random.random()*100, np.random.random() * 100, np.random.random() * 100, (np.random.random()+0.5)*100, self.t_infected, False) #(index, xpos, ypos, xobj, yobj, velocity, infected_time, fixed=false) if np.random.random()