Skip to content

gabo-di/AquaCrop.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AquaCrop.jl

status Stable Dev Build Status

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).

Installing

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")

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:

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).

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 prep) "AquaCrop.jl: A Process-Based 
Model of Crop Growth"

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •