june.groups.leisure.grocery.GroceryDistributor

class june.groups.leisure.grocery.GroceryDistributor(social_venues: june.groups.leisure.social_venue.SocialVenues, male_age_probabilities: dict = None, female_age_probabilities: dict = None, drags_household_probability=0.5, neighbours_to_consider=5, maximum_distance=5, weekend_boost: float = 1.0)

A sex/age profile for the social venue attendees can be specified as male_age_probabilities = {“18-65” : 0.3} any non-specified ages in the range (0,99) will have 0 probabilty Parameters ———- social_venues

A SocialVenues object

male_age_probabilities

a dictionary containg age as keys and the probabilty per day (think of it as the Poisson parameter lambda) of a male person of that age going to the social venue as value. This probability value is per day. So the chance of going to the social venue in a time delta_t is 1 - exp(- probabilty * delta_t)

female_age_probabilities

a dictionary containg age as keys and the probabilty of a female person of that age going to the social venue as value

weekend_boost

boosting factor for the weekend probability

__init__(social_venues: june.groups.leisure.social_venue.SocialVenues, male_age_probabilities: dict = None, female_age_probabilities: dict = None, drags_household_probability=0.5, neighbours_to_consider=5, maximum_distance=5, weekend_boost: float = 1.0)

A sex/age profile for the social venue attendees can be specified as male_age_probabilities = {“18-65” : 0.3} any non-specified ages in the range (0,99) will have 0 probabilty Parameters ———- social_venues

A SocialVenues object

male_age_probabilities

a dictionary containg age as keys and the probabilty per day (think of it as the Poisson parameter lambda) of a male person of that age going to the social venue as value. This probability value is per day. So the chance of going to the social venue in a time delta_t is 1 - exp(- probabilty * delta_t)

female_age_probabilities

a dictionary containg age as keys and the probabilty of a female person of that age going to the social venue as value

weekend_boost

boosting factor for the weekend probability

classmethod from_config(social_venues: june.groups.leisure.social_venue.SocialVenues, config_filename: str = None)
get_leisure_subgroup_type(person)
get_poisson_parameter(sex, age, is_weekend: bool = False)

Poisson parameter (lambda) of a person going to one social venue according to their age and sex and the distribution of visitors in the venue.

person

an instance of Person

delta_t

interval of time in units of days

is_weekend

whether it is a weekend or not

get_possible_venues_for_area(area: june.geography.geography.Area)

Given an area, searches for the social venues inside self.maximum_distance. It then returns self.neighbours_to_consider of them randomly. If there are no social venues inside the maximum distance, it returns the closest one.

get_possible_venues_for_household(household: june.groups.household.Household)

Given a household location, searches for the social venues inside self.maximum_distance. It then returns self.neighbours_to_consider of them randomly. If there are no social venues inside the maximum distance, it returns the closest one.

get_social_venue_for_person(person)

Adds a person to one of the social venues in the distributor. To decide, we select randomly from a certain number of neighbours, or the closest venue if the distance is greater than the maximum_distance.

person

person_drags_household()

Check whether person drags household or not.

probability_to_go_to_social_venue(person, delta_time, is_weekend: bool = False)

Probabilty of a person going to one social venue according to their age and sex and the distribution of visitors in the venue.

person

an instance of Person

delta_t

interval of time in units of days

is_weekend

whether it is a weekend or not

default_config_filename = PosixPath('/home/sadie/JUNE/configs/defaults/groups/leisure/groceries.yaml')