Skip to main content

GeoAquaCrop

Run AquaCrop-OSPy over large regions in gridded format — from raw global datasets to interactive results.

Python License

One import, three stages

import geoaquacrop as gac

gac.preprocess.run(...)        # download & harmonise the input datasets
gac.simulate.run(...)          # run AquaCrop for every grid cell
gac.visualize.run()         # explore the results

That is the whole API. Each stage is a separately maintained package, but you never need to know their names: geoaquacrop presents them as one library.

gac.preprocess  ->  gac.simulate  ->  gac.visualize
Stage What it does Documentation
gac.preprocess Downloads and harmonises climate, soil, crop calendar and crop area data onto a common grid for a given polygon and period readthedocs
gac.simulate Runs AquaCrop per grid cell in parallel; optional yield bias-correction and calibration against observations readthedocs
gac.visualize Interactive Dash/Plotly dashboard for exploring simulation outputs and climate inputs readthedocs

Installation

conda create -n geoaquacrop python=3.11
conda activate geoaquacrop
python -m pip install --pre geoaquacrop

The --pre flag is needed while the toolchain is in beta (0.1.0b1); pip skips pre-release versions otherwise. This installs all three stages.

For past climate data you also need a free Copernicus CDS account and API token — see the preprocessing documentation.

Installing a single stage

Each stage also works standalone, with the same function names:

python -m pip install geoaquacrop_preprocess    # data preparation only
python -m pip install geoaquacrop_simulate      # simulation only
python -m pip install geoaquacrop_visualize     # visualisation only
import geoaquacrop_simulate as simulate
summary_file, daily_file = simulate.run(data_path='...', start_date='...',
                                        end_date='...', crop='Wheat_winter')

gac.simulate.run and geoaquacrop_simulate.run are the same function, so code written against either keeps working.

End-to-end example

A complete run for one region, using only gac.

import geoaquacrop as gac

# 1. prepare the input data
gac.preprocess.run(
    domain_shape_path='high_plains.geojson',   # polygon, EPSG:4326
    start_year=2011,
    end_year=2013,
    api_token='your-copernicus-api-token',
    cell_resolution=0.05,
    workingdirectory='/data/high_plains',
)

# 2. run the simulation
summary_file, daily_file = gac.simulate.run(
    data_path='/data/high_plains/processed',   # fills all four input paths
    start_date='2011/01/01',
    end_date='2013/12/31',
    crop='Wheat_winter',
    irrigation='rainfed',
    output_dir='outputs',
)

# 3. explore the results
gac.visualize.run()          # then open http://localhost:8050

What each stage offers

gac.preprocess.run(...)                 # prepare every dataset
gac.preprocess.weather(...)             # or re-run a single step
gac.preprocess.soil(...)
gac.preprocess.crop_calendar(...)
gac.preprocess.crop_area(...)

gac.simulate.run(data_path=..., ...)    # simulate; returns (summary, daily)
gac.simulate.example_config()           # inspect every available setting
gac.simulate.input_requirements()       # print required files and units
gac.simulate.build_reference(...)       # per-year, region-level yield reference
gac.simulate.correct(config)            # bias-correct a saved run, no re-run
gac.simulate.compare([...])             # comparison figures and statistics
gac.simulate.load_results(path)         # saved results as tidy per-year points

gac.visualize.run()                  # start the dashboard

Importing geoaquacrop is cheap: each stage — and its dependencies — loads only when you first use it. If a stage is not installed, calling it tells you exactly what to install.

Which stage do I need?

  • Model outputs for a region, starting from nothing — all three.
  • Already have gridded climate, soil and crop inputs — gac.simulate alone.
  • Already have simulation outputs — gac.visualize alone.

Documentation

Contributors: see the stage package standard for the naming and API contract each stage follows.

Citation

If you use GeoAquaCrop in published work, please cite the toolchain and the underlying AquaCrop-OSPy model.

License

Apache-2.0 — see LICENSE.

Metadata

Release files for geoaquacrop 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for geoaquacrop 0.1.0
File Size Uploaded
geoaquacrop-0.1.0.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for geoaquacrop 0.1.0
File Interpreter ABI Platform
geoaquacrop-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.9 kB

Release files / geoaquacrop-0.1.0.tar.gz

Download URL geoaquacrop-0.1.0.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3a940084628b49230a19707275df74cd22c69908ed786b9500d79fdfa9e1cca4
BLAKE2b-256 checksum
How to use checksums
5bc2d6d49968cb5f6241e55d1cc8c656967209f84d436ffa09376bd735f5ca5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / geoaquacrop-0.1.0-py3-none-any.whl

Download URL geoaquacrop-0.1.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54c25d5ff422e4f0d42e8805ef29a265b4dec9150f64073e37c210a233e1789d
BLAKE2b-256 checksum
How to use checksums
8158dd0359a9f6fb7b87f6a5466db7b1141fb0da8b75858d21df3fb01456ba75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page