PlantSimEngine

Stable Dev Build Status Coverage ColPrac: Contributor's Guide on Collaborative Practices for Community Packages DOI

Overview

PlantSimEngine is a package for the simulation and modelling of plants, soil and atmosphere. It is designed to help researchers and practitioners prototype, implement, test plant/crop models at any scale, without the hassle of computer science technicality behind model coupling, running on several time-steps or objects.

The package defines a framework for declaring processes and implementing associated models for their simulation.

It focuses on key aspects of simulation and modeling such as:

  • easy definition of new processes, such as light interception, photosynthesis, growth, soil water transfer...
  • fast, interactive prototyping of models, with constraints to help users avoid errors, but sensible defaults to avoid over-complicating the model writing process
  • no hassle, the package manages automatically input and output variables, time-steps, objects, soft and hard coupling of models with a dependency graph
  • switch between models without changing any code, with a simple syntax to define the model to use for a given process
  • Reduce the degrees of freedom by fixing variables, passing measurements, or using a simpler model for a given process
  • ๐Ÿš€(very) fast computation ๐Ÿš€, think of 100th of nanoseconds for the full energy balance of a leaf using PlantBiophysics.jl that uses PlantSimEngine
  • easily scalable, with methods for computing over objects, time-steps and even Multi-Scale Tree Graphs
  • composable, allowing the use of any types as inputs such as Unitful to propagate units, or MonteCarloMeasurements.jl to propagate measurement error

Installation

To install the package, enter the Julia package manager mode by pressing ] in the REPL, and execute the following command:

add PlantSimEngine

To use the package, execute this command from the Julia REPL:

using PlantSimEngine

Projects that use PlantSimEngine

Take a look at these projects that use PlantSimEngine:

Make it yours

The package is developed so anyone can easily implement plant/crop models, use it freely and as you want thanks to its MIT license.

If you develop such tools and it is not on the list yet, please make a PR or contact me so we can add it! ๐Ÿ˜ƒ