Coupled field-agent modelling: an algebra for fields and objects

In our view, a modelling language is a language for expressing environmental models, by modellers. Modellers are domain experts who are not necessarely knowledgeable or interested in software development. They need an environment with a high level of abstraction. A modelling language, like a script language or a graphical language for example, provides the means for the domain expert to express his ideas about the phenomena being modelled. Most domain experts are not able to express such ideas in lower level languages like C++, C#, Java or even Python. The use of these languages require the domain expert to know things that are not directly related to expressing a model, like managing computer memory, managing files, handling errors. Another reason to provide a modelling environment directly to the domain expert, instead of asking a software developer to develop models for the domain expert, is that important decisions that have to be made during the development of the model get taken by the domain expert, instead of the developer. Like software development, model development is a highly itterative process, and decisions about the implementation need to be made continuously during the development of a model. Only for the most trivial models can the domain expert provide the software developer with the full specification of the model beforehand. In most cases the requirements of the model get adjusted continuously, based on the model’s performance.

Modellers mostly construct models along one of two modelling paradigms: field based or agent based. In the field based approach, phenomena are considered as spatially continuous, and spatial variation is represented by changes in the attribute value. Examples of fields are air temperature or elevation. In the agent based approach (also individual based, feature based, or object based approach), phenomena are represented as bounded objects that can be mobile. Spatial variation is represented by the distribution of objects in space. Although many landscape systems require to combine the field and agent based approaches, it is notably hard to do so in a model. This is mainly due to modelling languages being monolithic: they are either build around the field based or agent based paradigm. Integrating the two approaches requires coupling different modelling frameworks, which can be error prone, difficult, and time consuming.

To overcome this problem, this study aims at developing a modelling language that integrates the two approaches. The envisioned language should provide functions that operate on fields and/or agents, in a similar fashion. This will allow modellers to construct heterogeneous models consisting of agents and fields, in one single modelling language. Depending on your background, you can focus on designing concepts of such a language (e.g. the syntax), implementing a prototype (in your preferred programming language), or implementing a case study model that can be used to benchmark of such a language.

This is an interesting study if you like to combine your knowledge in spatio-temporal modelling and computer science or GIS. It gives you the opportunity to work in a multi disciplinary team consisting of environmental scientists and (PCRaster) software engineers.

Supervision: Dr. Derek Karssenberg, Drs. Kor de Jong

Location: Utrecht University, PCRaster research team

Period: to be determined

Number of students: 1-2

Program/track: Earth Surface Hydrology or Natural Hazards and Earth Observation (or any other track if you have a background in informatics)

Prerequisites: preferably courses in spatio-temporal modelling, and computer science

Contact/info: Derek Karssenberg (