def netherlands_mode():
    """Netherland mode."""
    seed = random.randrange(sys.maxsize)

    provinces = [
        "Groningen", "Friesland", "Drenthe", "Overijssel", "Flevoland",
        "Gelderland", "Utrecht", "Noord-Holland", "Zuid-Holland", "Zeeland",
        "Noord-Brabant", "Limburg", "---"
    ]

    grid_height = 200
    grid_width = 200
    map_id = 0
    canvas_height = 800
    canvas_width = canvas_height
    patient_zero = False

    model_params = {
        "height":
        grid_height,
        "width":
        grid_width,
        "seed":
        UserSettableParameter("number", "seed", value=str(seed)),
        "density":
        UserSettableParameter("slider",
                              "Agent density",
                              value=0.2,
                              min_value=0.01,
                              max_value=1.0,
                              step=0.01),
        "infected_chance":
        UserSettableParameter("slider",
                              "Change getting infected",
                              value=0.1,
                              min_value=0.01,
                              max_value=1.0,
                              step=0.01),
        "human_kill_agent_chance":
        UserSettableParameter("slider",
                              "Human survive chance",
                              value=0.35,
                              min_value=0,
                              max_value=1,
                              step=0.01),
        "map_id":
        map_id,
        "province":
        UserSettableParameter("choice",
                              "Province outbreak",
                              "Noord-Holland",
                              choices=provinces),
        "patient_zero":
        UserSettableParameter("checkbox", "Patient zero", value=patient_zero),
    }

    return model_params, canvas_height, canvas_width, grid_height, grid_width
Beispiel #2
0
    def setUp(self):

        self.user_params = {
            "width":
            1,
            "height":
            1,
            "key1":
            UserSettableParameter("number", "Test Parameter", 101),
            "key2":
            UserSettableParameter("slider", "Test Parameter", 200, 0, 300, 10),
        }

        self.viz_elements = [
            CanvasGrid(self.portrayal, 10, 10, 20, 20),
            TextElement(),
            # ChartModule([{"Label": "Wolves", "Color": "#AA0000"},  # Todo - test chart module
            #              {"Label": "Sheep", "Color": "#666666"}])
        ]

        self.server = ModularServer(MockModel,
                                    self.viz_elements,
                                    "Test Model",
                                    model_params=self.user_params)
Beispiel #3
0
        "w": 1.00
    }
    return portrayal


#Definición de lo elementos del server
grid = CanvasGrid(portrayal, 7, 7, 500, 500)
chart = ChartModule([{
    "Label": "Empleo calificado",
    "Color": "green"
}, {
    "Label": "Educados sin empleo calificado",
    "Color": "red"
}, {
    "Label": "No educados",
    "Color": "yellow"
}],
                    data_collector_name="datacollector")

#Definición del server
server = ModularServer(
    HumanCapital, [grid, chart], "Modelo de Capital Humano", {
        "N_educados":
        UserSettableParameter('slider', "Numero de personas educadas", 20, 1,
                              50, 1),
        "N_buenos_empleo":
        UserSettableParameter('slider', "Numero de buenos empleos", 10, 1, 50,
                              1),
        "colegiatura":
        UserSettableParameter('slider', "Colegiatura", 10, 0, 25, 1)
    })
                            }
                          for (node_id, agents) in G.nodes.data('agent')]

    portrayal['edges'] = [{'id': edge_id,
                           'source': source,
                           'target': target,
                           'color': '#000000',
                           }
                          for edge_id, (source, target) in enumerate(G.edges)]

    return portrayal


grid = NetworkModule(network_portrayal, 500, 500, library='sigma')
chart = ChartModule([
    {"Label": "Average Delta Trolling", "Color": "Black"}],
    data_collector_name='datacollector'
)


model_params = {
    "num_agents": UserSettableParameter('slider', "Number of agents", 50, 0, 100, 10,
                                        description="Choose how many total agents to include in the model"),
    "percent_trolls": UserSettableParameter('slider', "Percent trolls", .1, 0, 1.0, 0.05,
                                       description="Choose what percent trolls to include in the model"),
    "percent_mods": UserSettableParameter('slider', "Percent mods", .2, 0, 1.0, 0.05,
                                       description="Choose what percent mods to include in the model")
}

server = ModularServer(TrollModNetwork, [grid, chart], "Troll Mod Model", model_params)
server.port = 8521
Beispiel #5
0
    "Color": 'Red'
}, {
    "Label": "Removed",
    "Color": 'Blue'
}],
                         canvas_height=500,
                         canvas_width=1000)

model_params = {
    "height":
    100,
    "width":
    100,
    "dummy":
    UserSettableParameter(
        "static_text",
        value="NB. Use 'Reset'-button to activate new model settings"),
    "schedule_type":
    UserSettableParameter("choice",
                          "Scheduler type",
                          value="Simultaneous",
                          choices=list(EpiDyn.schedule_types.keys())),
    "startblock":
    UserSettableParameter("checkbox",
                          "2x2 block start (or random)",
                          value=True),
    "density":
    UserSettableParameter("slider", "Initial random density", 0.5, 0., 1.0,
                          0.001),
    "groupsize":
    UserSettableParameter("slider", "Groupsize", 3, 0, 25, 1),
Beispiel #6
0
    else:
        portrayal["Color"] = "grey"
        portrayal["Layer"] = 1
        portrayal["r"] = 0.2

    return portrayal


# canvas grid with dimensions 10 x 10, drawn in 500 x 500 pixels
grid = CanvasGrid(agent_portrayal, 10, 10, 500, 500)

# plot gini
chart = ChartModule([{
    "Label": "Gini",
    "Color": "black"
}],
                    data_collector_name="datacollector")

# user-definable number of agents
# parameter changes don't take place until the model is reset
n_slider = UserSettableParameter("slider", "Number of Agents", 100, 2, 200, 1)

# create server
server = ModularServer(MoneyModel, [grid, chart], "Money Model", {
    "N": n_slider,
    "width": 10,
    "height": 10
})
server.port = 8521  # default
server.launch()
from mesa.visualization.modules import CanvasGrid, ChartModule
from mesa.visualization.ModularVisualization import ModularServer
from mesa.visualization.UserParam import UserSettableParameter
from code.model import RatingModel

#set up model paramters
model_params = {
    'N':
    UserSettableParameter("slider",
                          'Viewers',
                          25,
                          1,
                          500,
                          description="Number of Viewers"),
    'M':
    UserSettableParameter("slider",
                          'Movies',
                          25,
                          1,
                          500,
                          description="Number of Movies"),
    'K':
    UserSettableParameter("slider",
                          'Categories',
                          1,
                          1,
                          10,
                          description="Number of Movie Categories"),
}

Beispiel #8
0
if CALIB:
    chart = ChartModule([{"Label": "NumberOfneighbors", "Color": "#666666"}])
else:
    chart = ChartModule([{
        "Label": 'NumberOfInfected',
        "Color": "#AA0000"
    }, {
        "Label": 'NumberOfSusceptible',
        "Color": " #AA5500"
    }, {
        "Label": 'NumberOfRecovered',
        "Color": "#00AA00"
    }, {
        "Label": 'NumberOfExposed',
        "Color": "#0000AA"
    }])

model_params = {
    "turtles": UserSettableParameter('slider', 'turtles', 1000, 100, 20000,
                                     100),
    "i0": UserSettableParameter('slider', 'i0', 10, 1, 100, 5),
    "r0": UserSettableParameter('slider', 'r0', 3.5, 0.5, 10.5, 0.5),
    "ti_shape": UserSettableParameter('slider', 'ti', 5.8, 1, 20, 1),
    "tr": UserSettableParameter('slider', 'tr', 5, 1, 20, 1)
}

server = ModularServer(BarrioTortugaSEIR, [canvas_element, chart],
                       "Barrio Tortuga SEIR", model_params)
server.port = 8521
server.launch()
Beispiel #9
0
    else:
        portrayal["Color"] = ["#2ee0ff", "#2ee0ff"]
    return portrayal


# 20x20 grid of 400x400 pixels, with agents rendered
# using the above function
canvas_element = CanvasGrid(schelling_draw, 20, 20, 400, 400)

# a simple timeseries visualization
move_chart = ChartModule([{"Label": "num_moved", "Color": "Black"}])

# parameters passed to the model
# passing parameter "values" equal to UserSettableParameters creates
# pleasant sliders
model_params = {
    "height": 20,
    "width": 20,
    "density": UserSettableParameter("slider", "Agent density", 0.8, 0.1, 1.0,
                                     0.1),
    "homophily": UserSettableParameter("slider", "homophily", 0.5, 0.0, 1.0,
                                       .02),
}

# serve the different model elements
server = ModularServer(
    SchellingModel,  # model used
    [move_element, canvas_element, move_chart],  # elements rendered
    "Schelling Model Visualization",  # name
    model_params  # parameters of model
)
Beispiel #10
0
                                                                                            n['agent'][0].wealth),
                           }
                          for n_id, n in G.nodes(data=True)]

    portrayal['edges'] = [{'id': i,
                           'source': source,
                           'target': target,
                           'color': '#000000',
                           }
                          for i, (source, target, _) in enumerate(G.edges(data=True))]

    return portrayal


grid = NetworkModule(network_portrayal, 500, 500, library='sigma')
chart = ChartModule([
    {"Label": "Gini", "Color": "Black"}],
    data_collector_name='datacollector'
)

model_params = {
    "num_agents": UserSettableParameter('slider', "Number of agents", 7, 2, 10, 1,
                                        description="Choose how many agents to include in the model"),
    "num_nodes": UserSettableParameter('slider', "Number of nodes", 10, 3, 12, 1,
                                       description="Choose how many nodes to include in the model, with at "
                                                   "least the same number of agents")
}

server = ModularServer(MoneyModel, [grid, chart], "Money Model", model_params)
server.port = 8521
Beispiel #11
0
        else:
            portrayal["Color"] = "brown"
        portrayal["Shape"] = "rect"
        portrayal["Filled"] = "true"
        portrayal["Layer"] = 0
        portrayal["w"] = 1
        portrayal["h"] = 1
    return portrayal


canvas_element = CanvasGrid(wolf_sheep_portrayal, 20, 20, 500, 500)
chart_element = ChartModule([{"Label": "Wolves", "Color": "#AA0000"},
                             {"Label": "Sheeps", "Color": "#666666"},
                             {"Label": "Wolves average age", "Color": "#AAAA00"},
                             {"Label": "Sheeps average age", "Color": "#00AAAA"}])

model_params = {"grass": UserSettableParameter('checkbox', 'Grass Enabled', True),
                "grass_regrowth_time": UserSettableParameter('slider', 'Grass Regrowth Time', 20, 1, 50),
                "initial_sheep": UserSettableParameter('slider', 'Initial Sheep Population', 100, 10, 300),
                "sheep_reproduce": UserSettableParameter('slider', 'Sheep Reproduction Rate', 0.04, 0.01, 1.0,
                                                         0.01),
                "initial_wolves": UserSettableParameter('slider', 'Initial Wolf Population', 50, 10, 300),
                "wolf_reproduce": UserSettableParameter('slider', 'Wolf Reproduction Rate', 0.05, 0.01, 1.0,
                                                        0.01,
                                                        description="The rate at which wolf agents reproduce."),
                "wolf_gain_from_food": UserSettableParameter('slider', 'Wolf Gain From Food Rate', 20, 1, 50),
                "sheep_gain_from_food": UserSettableParameter('slider', 'Sheep Gain From Food', 4, 1, 10)}

server = ModularServer(WolfSheepPredation, [canvas_element, chart_element], "Wolf Sheep Predation", model_params)
server.port = 8521
Beispiel #12
0
        'target': target,
        'color': '#000000',
    } for edge_id, (source, target) in enumerate(G.edges)]

    return portrayal


canvas_network = NetworkModule(mesa_abba_network_portrayal,
                               500,
                               600,
                               library='sigma')
chart_element = ChartModule([{"Label": "BankAsset", "Color": "#AA0000"}])

model_params = {
    "write_db":
    UserSettableParameter("checkbox", 'Write DB', value=True),
    "max_steps":
    UserSettableParameter("slider", "Max steps", 20, 10, 200, 1),
    "initial_saver":
    UserSettableParameter("slider", "# of Saver", 10000, 10000, 20000, 100),
    "initial_bank":
    UserSettableParameter("slider", "# of Bank", 10, 10, 20, 1),
    "initial_loan":
    UserSettableParameter("slider", "# of Loan", 20000, 10000, 30000, 100),
    "initial_equity":
    UserSettableParameter("slider", "Initial Equity of Bank", 100, 100, 200,
                          1),
    "car":
    UserSettableParameter("number",
                          "Minimum capital adequacy ratio",
                          value=0.08),
Beispiel #13
0

class InfectedText(TextElement):
    """
    Display a text count of how many steps have been taken
    """
    def __init__(self):
        pass

    def render(self, model):
        return "Days: " + str(model.steps)


model_params = {
    "show_schools":
    UserSettableParameter('checkbox', 'Show schools', value=True),
    "show_restaurants":
    UserSettableParameter('checkbox', 'Show restaurants', value=True),
    "monitored_statistic":
    UserSettableParameter('choice',
                          'Monitored statistic',
                          value='infected',
                          choices=['infected']),
}


def infected_draw(agent):
    """
    Portrayal Method for canvas
    """
    portrayal = dict()
Beispiel #14
0
from mesa_geo.visualization.MapModule import MapModule


class HappyElement(TextElement):
    '''
    Display a text count of how many happy agents there are.
    '''
    def __init__(self):
        pass

    def render(self, model):
        return "Happy agents: " + str(model.happy)


model_params = {
        "density": UserSettableParameter("slider", "Agent density",
                                         0.6, 0.1, 1.0, 0.1),
        "minority_pc": UserSettableParameter("slider", "Fraction minority",
                                             0.2, 0.00, 1.0, 0.05)
    }


def schelling_draw(agent):
    '''
    Portrayal Method for canvas
    '''
    portrayal = dict()
    if agent.atype is None:
        portrayal["color"] = "Grey"
    elif agent.atype == 0:
        portrayal["color"] = "Red"
    else:
Beispiel #15
0
    return portrayal
        


canvas_element = CanvasGrid(covid19_portrayal, 8, 8, 500, 500)
chart_element = ChartModule(
    [{"Label": "PersonaSaludable", "Color": "#00FF0D"}, {"Label": "PersonaInfectada", "Color": "#FF8700"},
     {"Label": "PersonaMalalta", "Color": "#AB1103"}, {"Label": "PersonaMortaPelVirus", "Color": "#333333"},
     {"Label": "PersonaImmunitzada", "Color": "#08F0EE"},{"Label": "Virus", "Color": "#EA08F0"}]
)


model_params = {
    "inicial_persones": UserSettableParameter(
        "slider", "Inici persones", 5, 0, 10
    ),
    "inicial_virus": UserSettableParameter(
        "slider", "Inici virus", 3, 0, 10
    ),
    "reproduccio_persones": UserSettableParameter(
        "slider", "Reproducció persones", 2, 0, 10
    ),
    "infeccio_virus": UserSettableParameter(
        "slider", "Infecció virus", 6, 0, 10
    ),
    "reproduccio_virus": UserSettableParameter(
        "slider", "Reproducció virus", 3, 0, 10
    ),
    "temps_deteccio": UserSettableParameter(
        "slider", "Temps detecció", 6, 0, 10
Beispiel #16
0
        portrayal["Layer"] = 1
        portrayal["r"] = 0.2
    return portrayal


grid = CanvasGrid(agent_portrayal, 10, 10, 500, 500)
chart = ChartModule([{
    "Label": "Gini",
    "Color": "Black"
}],
                    data_collector_name='datacollector')

model_params = {
    "N":
    UserSettableParameter(
        'slider',
        "Number of agents",
        100,
        2,
        200,
        1,
        description="Choose how many agents to include in the model"),
    "width":
    10,
    "height":
    10
}

server = ModularServer(MoneyModel, [grid, chart], "Money Model", model_params)
server.port = 8521
            tag: indicator that these are "obstruction" agents.
        """
        super().__init__(unique_id, model)
        self.pos = np.array(pos)
        self.tag = tag

    def step(self):
        """Make obstruction agents do nothing."""
        pass


# Interactive sliders for model arguments.
# Todo: Change "value" argument for initial or testing conditions
n_slider = UserSettableParameter(param_type='slider',
                                 name='Number of Agents',
                                 value=100,
                                 min_value=10,
                                 max_value=200,
                                 step=1)
speed_slider = UserSettableParameter(param_type='slider',
                                     name='Speed',
                                     value=2,
                                     min_value=0,
                                     max_value=10,
                                     step=1)
vision_slider = UserSettableParameter(param_type='slider',
                                      name='Vision Radius',
                                      value=10,
                                      min_value=0,
                                      max_value=20,
                                      step=1)
sep_slider = UserSettableParameter(param_type='slider',
Beispiel #18
0
        "Color": "#F6412D"
    },
],
                          data_collector_name='datacollector2')

histogram = HistogramModule([
    "Attraction1", "Attraction2", "Attraction3", "Attraction4", "Attraction5"
], 20, 50)

model_params = {
    "height":
    height,
    "width":
    width,
    "N_attr":
    UserSettableParameter("slider", "Number of attractions", num_agents, 1,
                          num_agents, 1),
    "N_cust":
    UserSettableParameter("slider", "Number of customers", int(N_cust / 1.5),
                          1, N_cust * 2, 1),
    "strategy":
    UserSettableParameter('choice',
                          'Strategy choice',
                          value='Closest_by',
                          choices=['Random', 'Closest_by']),
    "theme":
    UserSettableParameter('choice',
                          'Theme park lay-out',
                          value='circle',
                          choices=['random', 'circle', 'cluster']),
    "max_time":
    max_time,
Beispiel #19
0
        "heading_y": agent.heading[1]
    }
    return portrayal


grid = CanvasGrid(agent_portrayal, 5, 5, 500, 500)
chart = ChartModule([{
    "Label": "Average Success (of the last window of dialogs)",
    "Color": "Black"
}],
                    data_collector_name='datacollector')

# Number of Agents in the simulation
n = UserSettableParameter('slider',
                          'Total Number of agents',
                          value=5,
                          min_value=0,
                          max_value=10,
                          step=1)

l = UserSettableParameter('slider',
                          'Number of initial literate agents',
                          value=0,
                          min_value=0,
                          max_value=10,
                          step=1)
# Word-meaning coupling change rate
r = UserSettableParameter('slider',
                          'Vocabulary change rate',
                          value=5,
                          min_value=1,
                          max_value=10,
Beispiel #20
0
    return portrayal


grid = CanvasGrid(agent_portrayal, 50, 50, 800, 800)
chart1 = ChartModule(
    [{"Label": "Average Perception of Safety", "Color": "#0000FF"}],
    data_collector_name="datacollector"
)

chart2 = ChartModule(
    [{"Label": "Crime-rate", "Color": "black"}],
    data_collector_name="datacollector"
)

model_params = {
    "n_victims": UserSettableParameter('slider', 'Number of Possible Victims', value=50, min_value=0, max_value=100, step=1),
    "n_offenders": UserSettableParameter('slider', 'Number of Possible Offernders', value=15, min_value=0, max_value=30, step=1),
    "n_criminal_generators": UserSettableParameter('slider', 'Number of Criminal Generators', value=3, min_value=0, max_value=6, step=1),
    "r_criminal_generators": UserSettableParameter('slider', 'Radius of the Criminal Generator Area', value=4, min_value=0, max_value=8,
                                step=1),
    "max_cp": UserSettableParameter('slider', 'Upper Bound on Criminal Preference of Offenders', value=0.5, min_value=0,
                                    max_value=1,
                                    step=0.01),
    "pop_count": 0,
    "height": 50,
    "width": 50
}

server = ModularServer(Model,
                       [grid, chart1, chart2],
                       "Violent Crime when Walking Home Alone at Night",
Beispiel #21
0
    return portrayal


canvas_element = CanvasGrid(citizen_cop_portrayal, 40, 40, 500, 500)
active_chart = ChartModule([{
    "Label": "Active",
    "Color": "Red"
}, {
    "Label": "Jailed",
    "Color": "Black"
}, {
    "Label": "Quiescent",
    "Color": "Orange"
}],
                           data_collector_name="dc")
leg_slider = UserSettableParameter('slider', "legitimacy", 0.8, 0., 1., 0.001)
cit_vis_slider = UserSettableParameter('slider', "Citizen vision", 3, 1, 10, 1)
cop_vis_slider = UserSettableParameter('slider', "Cop vision", 2, 1, 10, 1)
act_slider = UserSettableParameter('slider', "Active treshold", 0.1, 0., .5,
                                   0.001)
#hom_slider = UserSettableParameter('slider', "Schelling homophily", 3, 1, 9, 1)
nb_choice = UserSettableParameter('choice',
                                  'Neighbourhood vision setup',
                                  value='Neumann',
                                  choices=['Neumann', 'Moore'])
jail_slider = UserSettableParameter('slider', "Max jail time", 30, 0., 150, 1)
server = ModularServer(
    CivilViolenceModel,
    [canvas_element, active_chart],
    "Epstein Civil Violence",
    {
        ratio = model.resistant_susceptible_ratio()
        ratio_text = "∞" if ratio is math.inf else "{0:.2f}".format(
            ratio)
        infected_text = str(number_infected(model))

        return "Resistant/Susceptible Ratio: {}<br>Infected Remaining: {}".format(
            ratio_text, infected_text)


model_params = {
    "num_nodes":
    UserSettableParameter(
        "slider",
        "Number of agents",
        10,
        10,
        100,
        1,
        description="Choose how many agents to include in the model",
    ),
    "avg_node_degree":
    UserSettableParameter("slider",
                          "Avg Node Degree",
                          3,
                          3,
                          8,
                          1,
                          description="Avg Node Degree"),
    "initial_outbreak_size":
    UserSettableParameter(
        "slider",
Beispiel #23
0
        ratio_text = "&infin;" if ratio is math.inf else "{0:.2f}".format(
            ratio)
        positive_text = str(m.num_positive(model))
        negative_text = str(m.num_negative(model))

        return "Positive/Negative Ratio: {}<br>Positive Opinion: {}<br>Negative Opinion: {}".format(
            ratio_text, positive_text, negative_text)


# model parameters settable from interface
model_parameters = {
    "num_nodes":
    UserSettableParameter(
        "slider",
        "Number of nodes",
        100,
        10,
        1000,
        10,
        description="Number of nodes to include in the model"),
    "avg_node_degree":
    UserSettableParameter(
        "slider",
        "Average node degree",
        2,
        1,
        5,
        0.1,
        description="Average number of links from each node"),
    "initial_opinion":
    UserSettableParameter(
        "slider",
from mesa.visualization.UserParam import UserSettableParameter

health_workers_option = UserSettableParameter('checkbox',
                                              'Health Workers',
                                              value=True)
public_admin_option = UserSettableParameter(
    'checkbox', 'Public Administration and Defense', value=True)
gainful_workers_option = UserSettableParameter(
    'checkbox', 'Gainful Workers by Occupational Group', value=True)
persons_with_difficulty_option = UserSettableParameter(
    'checkbox', 'Persons with Functional Difficulty', value=True)

mobile_workforce_option = UserSettableParameter('checkbox',
                                                'Mobile Workforce',
                                                value=True)
elderly_option = UserSettableParameter('checkbox',
                                       'Elderly Population',
                                       value=True)

person_health_social_work_option = UserSettableParameter(
    'checkbox',
    'Persons with Human Health and Social Work Activities',
    value=True)
person_prof_tech_option = UserSettableParameter(
    'checkbox',
    'Persons with Professional, Scientific and Technical Activities',
    value=True)
person_admin_support_option = UserSettableParameter(
    'checkbox',
    'Persons with Administrative and Support Service Activities',
    value=True)
Beispiel #25
0
        return
    portrayal = {"Shape": "circle", "r": 0.5, "Filled": "true", "Layer": 0}

    if agent.type == 0:
        portrayal["Color"] = ["#FF0000", "#FF9999"]
        portrayal["stroke_color"] = "#00FF00"
    else:
        portrayal["Color"] = ["#0000FF", "#9999FF"]
        portrayal["stroke_color"] = "#000000"
    return portrayal


happy_element = HappyElement()
canvas_element = CanvasGrid(schelling_draw, 20, 20, 500, 500)
happy_chart = ChartModule([{"Label": "happy", "Color": "Black"}])

model_params = {
    "height":
    20,
    "width":
    20,
    "density":
    UserSettableParameter("slider", "Agent density", 0.8, 0.1, 1.0, 0.1),
    "minority_pc":
    UserSettableParameter("slider", "Fraction minority", 0.2, 0.00, 1.0, 0.05),
    "homophily":
    UserSettableParameter("slider", "Homophily", 3, 0, 8, 1)
}

server = ModularServer(Schelling, [canvas_element, happy_element, happy_chart],
                       "Schelling", model_params)
Beispiel #26
0
# Define the charts on our web interface visualisation
status_chart = ChartModule([{"Label": "Alive", "Color": "blue"},
                            {"Label": "Dead", "Color": "red"},
                            {"Label": "Escaped", "Color": "green"}])

mobility_chart = ChartModule([{"Label": "Normal", "Color": "green"},
                              {"Label": "Panic", "Color": "red"},
                              {"Label": "Incapacitated", "Color": "blue"}])

collaboration_chart = ChartModule([{"Label": "Verbal Collaboration", "Color": "orange"},
                                   {"Label": "Physical Collaboration", "Color": "red"},
                                   {"Label": "Morale Collaboration", "Color": "pink"}])

# Get list of available floorplans
floor_plans = [f for f in listdir("fire_evacuation/floorplans") if path.isfile(path.join("fire_evacuation/floorplans", f))]

# Specify the parameters changeable by the user, in the web interface
model_params = {
    "floor_plan_file": UserSettableParameter("choice", "Floorplan", value=floor_plans[0], choices=floor_plans),
    "human_count": UserSettableParameter("number", "Number Of Human Agents", value=10),
    "collaboration_percentage": UserSettableParameter("slider", "Percentage Collaborating", value=50, min_value=0, max_value=100, step=10),
    "fire_probability": UserSettableParameter("slider", "Probability of Fire", value=0.1, min_value=0, max_value=1, step=0.01),
    "random_spawn": UserSettableParameter('checkbox', 'Spawn Agents at Random Locations', value=True),
    "visualise_vision": UserSettableParameter('checkbox', 'Show Agent Vision', value=False),
    "save_plots": UserSettableParameter('checkbox', 'Save plots to file', value=True)
}

# Start the visual server with the model
server = ModularServer(FireEvacuation, [canvas_element, status_chart, mobility_chart, collaboration_chart], "Fire Evacuation",
                       model_params)
Beispiel #27
0
    #                "r": 6,
    #                "Filled": "true",
    #                "Color": "Yellow"}
    else:
        display = {
            "Shape": "circle",
            "r": guest_size_dict[agent.role],
            "Filled": "True",
            "Color": guest_color_dict[agent.role]
        }
    return display


canvas = SimpleCanvas(agent_draw, 500, 500)
model_params = {"num_agents": 50}
n_party = UserSettableParameter('slider', 'Number of party agents', 10, 2, 20,
                                1)
n_guard = UserSettableParameter('slider', 'Number of guard agents', 10, 2, 20,
                                1)
n_trouble = UserSettableParameter('slider', 'Number of troublemaker agents',
                                  10, 2, 20, 1)
n_celeb = UserSettableParameter('slider', 'Number of celebrity agents', 10, 2,
                                20, 1)
n_hippie = UserSettableParameter('slider', 'Number of hippie agents', 10, 2,
                                 20, 1)

learning = UserSettableParameter('checkbox', 'Learning', True)
pareto_fight = UserSettableParameter('checkbox', 'Pareto Fight', False)
pareto = UserSettableParameter('checkbox', 'Pareto', False)
lucia = UserSettableParameter('checkbox', 'Lucia Dagen', False)

# chart = ChartModule([{"Label": "Alive agents",
Beispiel #28
0
    return portrayal


canvas_element = CanvasGrid(walker_portrayal, 30, 30, 500, 500)
chart_element = ChartModule([{
    "Label": "Average Finished Cyan Walkers",
    "Color": "#00FFFF"
}, {
    "Label": "Average Finished Red Walkers",
    "Color": "#AA0000"
}])

model_params = {
    "initial_cyan_walkers":
    UserSettableParameter("slider", "Initial cyan walkers", 50, 1, 50),
    "initial_red_walkers":
    UserSettableParameter("slider", "Initial red walkers", 50, 1, 50),
    "cyan_noise":
    UserSettableParameter("slider", "Cyan walker noise", 0, 0, 100),
    "red_noise":
    UserSettableParameter("slider", "Red walker noise", 0, 0, 100),
    "cyan_box_drop_chance":
    UserSettableParameter("slider", "Cyan box drop chance", 5, 0, 100),
    "cyan_box_duration":
    UserSettableParameter("slider", "Cyan box duration", 5, 0, 100),
    "cyan_box_amount":
    UserSettableParameter("slider", "Cyan box amount", 5, 0, 20),
    "red_box_drop_chance":
    UserSettableParameter("slider", "Red box drop chance", 5, 0, 100),
    "red_box_duration":
chart_element = ChartModule([{
    "Label": "amazonprime",
    "Color": "#0000FF"
}, {
    "Label": "netflix",
    "Color": "#FF0000"
}, {
    "Label": "disneyplus",
    "Color": "#00FF00"
}
                             #{"Label": "appletv", "Color": "#000000"}
                             ])

model_params = {
    "quality_amazonprime":
    UserSettableParameter('slider', 'Quality amazonprime', 25, 1, 100, 1),
    "quality_netflix":
    UserSettableParameter('slider', 'Quality netflix', 50, 1, 100, 1),
    "quality_disneyplus":
    UserSettableParameter('slider', 'Quality disneyplus', 15, 1, 100, 1),
    "content_amazonprime":
    UserSettableParameter('slider', 'Content amazonprime', 15, 1, 100, 1),
    "content_netflix":
    UserSettableParameter('slider', 'Content netflix', 5, 1, 100, 1),
    "content_disneyplus":
    UserSettableParameter('slider', 'Content disneyplus', 7, 1, 100, 1)
    #"initial_appletv": UserSettableParameter('slider', 'Initial appletv', 10, 1, 100, 1)
}

server = ModularServer(market, [canvas_element, chart_element],
                       "DIgital TV Effect", model_params)
Beispiel #30
0
        if agent.savings < 10 and agent.loans < 10:
            color = MID_COLOR
        if agent.loans > 10:
            color = POOR_COLOR

        portrayal["Color"] = color

    return portrayal


# dictionary of user settable parameters - these map to the model __init__ parameters
model_params = {
    "init_people":
    UserSettableParameter("slider",
                          "People",
                          25,
                          1,
                          200,
                          description="Initial Number of People"),
    "rich_threshold":
    UserSettableParameter(
        "slider",
        "Rich Threshold",
        10,
        1,
        20,
        description="Upper End of Random Initial Wallet Amount",
    ),
    "reserve_percent":
    UserSettableParameter(
        "slider",
        "Reserves",