Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - in planning

Aim: 3 species, 2 crop growth models, farm model, GAEC scenarios, experimental analysis

[0.6.0] - in planning

Plan: integrate AquaCrop (#79), set up first experiments


[0.5.4] - in planning

Plan: basic farm model (#16), decouple CairoMakie (#81), test Skylark model (#96, #97)

[0.5.3] - unreleased

Plan: code restructuring to allow multiple crop models (#70)

Added

Changed

Deprecated

Removed

Fixed

[0.5.2] - 30-07-2024

Rewrote the skylark model

Added

  • Skylark model is largely rewritten to follow a new phase structure (#9)

  • animals can occupy territories (see @occupy, @isoccupied, @vacate macros/functions) (#94)

  • @cropcover macro and function

  • ODD documentation for Skylark

Changed

  • input files that are now copied to a separate inputs directory within the output directory

  • EventType renamed to Management for clarity

  • documentation website now has a "Scientific Documentation" section

Removed

  • old skylark model (has been rewritten, see above)

Fixed

  • all skylarks now migrate (#90)

  • insectbiomass() uses units

[0.5.1] - 13-06-2024

Added Unitful.jl

Added

  • Unitful.jl now used to add units to quantities

  • world.mapdirectory parameter specifies the path to the directory in which

landcovermap, farmfieldsmap, and weatherfile are located

  • world.mapresolution parameter specifies the input maps' spatial resolution in meters

Changed

  • spatial functions now work with explicit distances (using Unitful.jl) rather than using the number of pixels

  • all species definitions and tests updated to use units


[0.5.0] - 07-06-2024

This release doesn't add much new functionality, but represents a major restructuring of the code base. Specifically, it removes the Agents.jl dependency and changes the way the species definition macros work and are used.

Added

  • SimulationModel type, extended by AgricultureModel struct

  • @create macro defines a special phase function that is called when an individual animal is created (at birth or on model initialisation)

  • functions (and associated macros) to replace Agents.jl functionality:

    • move!() and walk!()
    • nearby_ids(), nearby_animals(), countanimals(), neighbours()
    • directionto(), distanceto(), randomdirection()
    • nagents(), killallanimals!()
  • @here macro to return the pixel currently occupied by the active animal

  • core.logoutput parameter to define whether logs are printed to screen, file, none, or both

  • large logo and model structure diagram

  • Changelog

Changed

  • SimulationModel replaces AgentBasedModel

  • Species definition macros revamped:

    • @species now only defines parameters and variables and creates a mutable struct
    • @phase must now be defined in the top-level code and creates a global function
    • @initialise renamed to @populate, must also be called in the top-level code
    • initindividual() renamed to create!()
  • Skylark, Wolpertinger, and Wyvern updated to match the new macros

  • requires Julia 1.10

Removed

  • Agents.jl dependency (including AgentBasedModel and functions for adding/moving/removing agents)

[0.4.1] - 2023-11-14

Initial version of the skylark model

Added

  • initial version of the Skylark species

  • small Jena map

  • animal individuals keep track of their parents' IDs

  • several new functions and macros for animals

  • installation instructions for Windows

Changed

  • graphics output is more configurable

[0.4.0] - 2023-10-28

Functions for animal populations

Added

  • initialisation functions for individuals (not just species)

  • migration function / migrant pool for animals that disappear from the landscape during winter

  • skylark migration

Changed

  • online documentation was expanded and restructured

  • nature macros moved to a separate file

Started changelog at this point, earlier versions are not included.

<!– Template

[version] - unreleased

<comments>

PLANNED

Added

Changed

Deprecated

Removed

Fixed

–>