AquaCrop.jl

AquaCrop.jl: A Process-Based Model of Crop Growth - Published in JOSS (2025)

https://github.com/gabo-di/aquacrop.jl

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Agricultural and Biological Sciences Life Sciences - 48% confidence
Last synced: 4 months ago · JSON representation

Repository

FAO's Aqua Crop in Julia as part of Persefone.jl

Basic Info
  • Host: GitHub
  • Owner: gabo-di
  • License: other
  • Language: Julia
  • Default Branch: main
  • Size: 3.05 MB
Statistics
  • Stars: 9
  • Watchers: 5
  • Forks: 3
  • Open Issues: 0
  • Releases: 2
Created over 1 year ago · Last pushed 4 months ago
Metadata Files
Readme License

README.md

AquaCrop.jl

status Stable Dev Build Status DOI

Welcome to AquaCrop.jl! This package is an independent Julia implementation of FAO's AquaCrop, a process-based crop growth model. The package currently corresponds to AquaCrop version 7.2.

AquaCrop is a well-established crop growth model that uses environmental parameters (e.g. precipitation, temperature, and soil quality) to predict plant growth and yield of a large range of crop species. It was first published in three papers by Steduto et al. (2009), Raes et al. (2009), and Hsiao et al. (2009).

The core code of this package closely follows the original Fortran implementation. On top of the core code, we developed an API that makes it easy to configure and run the simulations in several ways. It enables exploring and interacting with state variables at run time, opening up the possibility of dynamic, bidirectional model coupling. These new features increase the interoperability of the model compared to its original implementation, making it more easily accesible to growing number of interdisciplinary environmental modellers working with Julia.

Installing

Since the package is not yet registered, you can install it straight from Github:

julia using Pkg Pkg.add("AquaCrop")

Documentation

The documentation gives examples of how to use the package, and describes the API functions.

Basic Usage

AquaCrop.jl can be used with the same input files as the original model. You must specify the directory that includes these files and then call the basic_run function:

```julia using AquaCrop

runtype = NormalFileRun() parentdir = AquaCrop.test_dir #".../AquaCrop.jl/test/testcase"

outputs = basic_run(; runtype=runtype, parentdir=parentdir)

isequal(size(outputs[:dayout]), (892, 89)) # true ```

you can see the daily result in outputs[:dayout], the result of each harvest in outputs[:harvestsout], the result of the whole season in outputs[:seasonout], the information for the evaluation in outputs[:evaldataout], and the logger information in outputs[:logger].

You can also choose to format your input data as TOML and CSV files:

```julia runtype = TomlFileRun() parentdir = AquaCrop.testtomldir #".../AquaCrop.jl/test/testcase/TOML_FILES"

outputs = basic_run(; runtype=runtype, parentdir=parentdir)

isequal(size(outputs[:dayout]), (892, 89)) # true ```

Finally, you can pass all variables and data using the API (tutorial here).

Tests

This package constains tests used for CI, but can also be used to check if the package is working properly when installed. To run the tests, after adding the package, activate the package manager, by typing ], and write pkg> test AquaCrop Otherwise check the CI badge status at the beggining of this README.md

Extended Tests

We have an additional branch named extended-tests where we compare more results between the FAO's AquaCrop implementation and ours. The status of these tests can be seen here:

Extended Tests

Contributing

We welcome questions, suggestions, bug reports, or other contributions.

  • You can file issues/bugs/questions/requests using the Github issue tracker. For bugs, please include as much information possible, including operating system, Julia version, version of AquaCrop.jl, and all the data needed to reproduce the bug.

  • To contribute to the core code or API, make a pull request. Contributions should include tests and a description of the problem you solve. Tests should ensure that new features are backwards-compatible with the original Fortran model. If necessary, also update the documentation describing new API functionality.

  • To contribute to the documentation or tutorials, make a pull request. Make sure it is possible to get any necessary data.

Please note: Questions or change requests regarding the scientific functioning of the model (rather than the technical details of this particular implementation) should be addressed to the original model developers.

Citing

If you use AquaCrop.jl in your scientific work, please cite the following paper once it is published:

Díaz Iturry, Matthies, Pe'er, Vedder (in review) "AquaCrop.jl: A Process-Based 
Model of Crop Growth" Journal of Open Source Software

Owner

  • Login: gabo-di
  • Kind: user

JOSS Publication

AquaCrop.jl: A Process-Based Model of Crop Growth
Published
June 03, 2025
Volume 10, Issue 110, Page 7944
Authors
Gabriel Díaz Iturry ORCID
Helmholtz Centre for Environmental Research - UFZ, German Centre for Integrative Biodiversity Research (iDiv) Halle-Jena-Leipzig
Marco C. Matthies ORCID
Helmholtz Centre for Environmental Research - UFZ, German Centre for Integrative Biodiversity Research (iDiv) Halle-Jena-Leipzig
Guy Pe'er ORCID
Helmholtz Centre for Environmental Research - UFZ, German Centre for Integrative Biodiversity Research (iDiv) Halle-Jena-Leipzig
Daniel Vedder ORCID
Helmholtz Centre for Environmental Research - UFZ, German Centre for Integrative Biodiversity Research (iDiv) Halle-Jena-Leipzig, Friedrich-Schiller-Universität Jena
Editor
Ethan White ORCID
Tags
agriculture plant growth yield forecast

GitHub Events

Total
  • Create event: 6
  • Release event: 1
  • Issues event: 19
  • Watch event: 9
  • Delete event: 2
  • Issue comment event: 14
  • Public event: 1
  • Push event: 179
  • Pull request review event: 4
  • Pull request event: 35
  • Fork event: 3
Last Year
  • Create event: 6
  • Release event: 1
  • Issues event: 19
  • Watch event: 9
  • Delete event: 2
  • Issue comment event: 14
  • Public event: 1
  • Push event: 179
  • Pull request review event: 4
  • Pull request event: 35
  • Fork event: 3

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 10
  • Total pull requests: 14
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 5
  • Total pull request authors: 6
  • Average comments per issue: 0.4
  • Average comments per pull request: 0.14
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 10
  • Pull requests: 14
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 3 hours
  • Issue authors: 5
  • Pull request authors: 6
  • Average comments per issue: 0.4
  • Average comments per pull request: 0.14
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • gabo-di (5)
  • tonyewong (2)
  • veddox (2)
  • julienmalard (1)
  • JuliaTagBot (1)
Pull Request Authors
  • gabo-di (12)
  • marcom (3)
  • visr (2)
  • veddox (2)
  • github-actions[bot] (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1) github_actions (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
juliahub.com: AquaCrop

FAO's Aqua Crop in Julia as part of Persefone.jl

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 8.4%
Average: 22.3%
Dependent packages count: 36.1%
Last synced: 4 months ago