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).
Since the package is not yet registered, you can install it straight from Github:
using Pkg
Pkg.add(url="https://github.com/gabo-di/AquaCrop.jl")
The documentation gives examples of how to use the package, and describes the API functions.
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:
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:
runtype = TomlFileRun()
parentdir = AquaCrop.test_toml_dir #".../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).
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.
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 prep) "AquaCrop.jl: A Process-Based
Model of Crop Growth"