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 multiple crop growth models, set up first experiments
[0.5.3] - in planning
Plan: basic farm model (#16), decouple CairoMakie (#81)
[0.5.2] - unreleased
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 -
scientific documentation for Skylark (will become ODD)
Changed
-
input files that are now copied to a separate
inputs
directory within the output directory -
EventType
renamed toManagement
for clarity
Deprecated
Removed
- old skylark model (has been rewritten, see above)
Fixed
-
all skylarks now migrate (#90)
-
insectbiomass()
uses units
[v0.5.1] - 13-06-2024
Added
-
Unitful.jl now used to add units to quantities
-
world.mapdirectory
parameter specifies the path to the directory in whichlandcovermap
,farmfieldsmap
, andweatherfile
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
[v0.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 byAgricultureModel
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!()
andwalk!()
-
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
replacesAgentBasedModel
-
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 tocreate!()
-
-
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)
[v0.4.1] - 2023-11-14
Wrote tests for skylark migration -> made graphics output format configurable
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
[v0.4.0] - 2023-10-28
Refactored makieplots.jl -> Wrote tests for skylark migration
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.