Skip to content

Features and Model Structure

Bumsuk Seo edited this page May 24, 2020 · 1 revision

Overview

List of features that CRAFY implements:

  • Allocation of various Land Uses on grid-based land cells
  • Social Interaction via social network of land managers

This page describes the way the different model components are implemented.

The general idea is that very few things are fixed. The spatial data structures (Cells, Regions etc.) are separate from the processes which work over them (Allocation, Competition, Production etc.), to allow alternative processes to be used. In code terms, this means that Cells and Regions are classes, while Allocation, Competition etc. are interfaces, with different implementations. The org.volante.abm.models package has the interfaces, while the org.volante.abm.example package has example implimentations.

Components

Fixed {#FeaturesandModelStructure-Fixed}

  • Cell{.createlink}s are the basic spatial data unit. They have x,y coordinates, levels for a set of capitals, and levels of current service production
  • Region{.createlink}s are sets of cells. Many of the processes work over a region (e.g. allocation to meet demand). Regions can be nested, to build up a hierarchy representing processes at different levels.

Submodels {#FeaturesandModelStructure-Submodels}

Each submodel can have many implementations, as long as they fit the specified interface. A (stupid) example of each of these is provided in the org.volante.abm.example package to help understand their function.

  • Production is a function from cell capitals to service provision. Each agent has a production function, which forms the basis of their competitiveness.
  • Allocation manages filling up abandoned land, and displacing existing agents with new ones
  • [Competitiveness]{.confluence-link} is a function from demand and productivity to a number indicating how competitive a given provision of services would be in that particular location
  • Demand represents demand at a cell or regional level, and allows for querying the residual (unsatisfied) demand.
  • Social represents social interaction between agents, and can be used to describe a variety of forms of social network with different effects

Agents {#FeaturesandModelStructure-Agents}

Agent comes as an interface and a default implementation (both in org.volante.abm.agent). The default is currently configurable with different production functions and giving up/giving in thresholds.

  • Agent{.createlink}s have ownership of one (or more) cells, and produce services. They compete for land, and sometimes give up.

Attributes {#FeaturesandModelStructure-Attributes}

These represent the sets of possible services, land uses etc. An example of each is provided in org.volante.abm.example, but alternative setups can be constructed with different services and capitals.

  • Service{.createlink} is the set of services which the agents provide
  • Capitals{.createlink} is the set of cell capitals the agents leverage for production