Design and Development of Infectious Disease ABM

  • Purpose: Discover interesting spatiotemporal patterns and understand their underlying driving processes through the development and application of appropriate ABM.
  • Case study: Investigate how West Nile virus diffuses over space and time and causes its outbreak. Our model will provide decision support for the prediction and control of this infectious disease.
  • Study area (Chicago):
    • Resolution: 30m x 30m
    • Landscape size: 100 x 100 – 1000 x 1000 (optional)
    • Agents: modeled as individual and aggregate levels?



  1. What GIS data is actually important (e.g. it must have a known effect on mosquito movement or behavior)
  2. Where are important data on the behavior of mosquitoes and infection probabilities?


  1. What is a reasonable iteration time? (e.g. day? hour? week?)


1. Literature search

2.Data collection and organization

  • Mosquitoes
    • Available
  • Human:
    • Population density
    • Census data

3.Data processing

  • Software tentative: ArcMap
  • Purpose: organize original data, and process them into formats needed by our model
  • Formats: Raster
  • Further geo-processing that may be needed for distance to water, distance to road, etc.


  • UML design
  • Programming languages: C/C++
  • Agent: Rule-base design
  • Environment: dynamic update, including temperature

5.Calibration and validation

  • Empirical approach micro- and macro-level
  • Figure 1: A UML diagram for the agent-based modeling of West Nile virus diffusion


  • Environment
    • Cells contain 2 types of data
      • Static data (e.g. water, landuse)
        • Initializes once
      • Dynamic data (e.g. temp, precip)
        • Updated every iteration
        • Contains an array size=2 for a before & after entry
        • The environment contains the time for the before and after entry
        • These 4 data elements can be used to determine the current value based on a linear difference
        • Later techniques can be used (such as curve smoothing) but for now this should suffice
  • Agents
    • Have an id and population size and population infected
    • They roam around randomly, but soon we will need to identify what drives the movement patterns
  • Other code
    • Basic iteration framework is working and agents/env are initialized and updated per each iteration