CoMOLA is a python tool for optimal spatial allocation of land uses. The tool creates optimal land-use maps for up to four objectives. It takes into account constraints and can be coupled with external models to evaluate different objectives (e.g. ecosystem services/biodiversity models)
CoMOLA (Constrained Multi-objective Optimization of Land use Allocation) is a free Python tool to optimize the allocation of land use for multiple objectives. It builds upon the open source "inspyred" Python library and includes functions for reading, encoding and writing land use maps as well as genome generation and repair mutation algorithms for considering constraints during the optimization procedure. It runs on Windows and Linux and allows for the integration of any model whose prediction (e.g. a value for an ecosystem service) is based on a land use raster map. In its basic form, CoMOLA can be used immediately by inputting a raster map representing the status-quo land use, ready-to-run models written in R including their input data, and (optional) information on constraints. As constraints, the tool can consider (1) transition rules defining which type of land use can be converted into which other type and (2) minimum and maximum area proportions of each land use type within the study area. All relevant settings, such as paths to input data and models as well as optimization-specific parameters (e.g. population size, crossover and mutation rates) and settings related to constraint-handling and raster map-analysis are managed in one single control file (Fig. 1).
Fig. 1: CoMOLA framework.
Fields of application have been e.g. the spatial allocation of agricultural land uses such as different types of cropland and grassland maximizing yield, biodiversity and minimizing nutrient leaching, the optimal allocation of riparian reforestation efforts along rivers, exploring optimal strategies to retain water and nutrients in agricultural catchments. Other potential fields of application can be nature conservation, climate adaptation, restoration, urban planning, renewable energies or even other contexts outside of environmental research where spatial allocation of certain measures/uses are required.
CoMOLA has been used for teaching spatial multi-objective optimization at universities. For these purposes, a Docker container is available (instructions can be found in the GitHub repository).
CoMOLA was developed and tested for Python 3.9 and above.
Furthermore R has to be installed to run external models.
CoMOLA requires different types of spatial and non-spatial input data (e.g. land-use map, patch-ID map, transition rules). For details, check the GitHub repository.
Once CoMOLA has been started, a log file is generated in the output folder documenting the process of optimization.
A successful run of CoMOLA will provide the following outputs:
An R-script is provided in the GitHub repository to extract, evaluate and plot the best solutions (see Fig. 2).
Example plot:
Fig. 2: Example plot of optimization output.