Skip to main content

simpest

simpest logo

PyPI License: MIT

simpest is a Python package for coupled crop growth and plant disease/pest simulation. It runs a SIMPLACE/Lintul5 crop growth scenario, converts the daily crop trajectory into the inputs a disease and fungicide simulation model expects, and runs that model — optionally calibrating selected parameters against field reference observations — to produce daily and seasonal outputs. The disease/pest simulation logic is inspired by the FraNchEstYN model.

What it does

  • Runs SIMPLACE crop growth scenarios and reads the resulting daily trajectory.
  • Converts SIMPLACE weather, management, and crop-model outputs into the format the disease/fungicide simulation expects.
  • Simulates daily crop growth, epidemiological (SEIR) disease dynamics, and fungicide efficacy, coupled through four damage mechanisms (light interception loss, radiation-use-efficiency reduction, assimilate loss, and accelerated senescence).
  • Calibrates selected crop and disease parameters with a multi-start Nelder–Mead search against reference observations.
  • Exports daily simulation records and per-season summaries (AUDPC, yield loss, peak severity, weather aggregates).

Core modules live under simpest/models.

Installation

pip install simpest

For an editable, development install:

git clone https://github.com/KaziJahidurRahaman/simpest
cd simpest
pip install -e .

Running the crop growth stage additionally requires a SIMPLACE installation and the simplace Python package (a Java/JVM bridge via jpype); see Installation for details.

Quickstart

The disease/fungicide simulation stage takes plain pandas DataFrames, so it can be exercised on its own once you have weather, management, crop-model, and reference data available (as CSVs or otherwise):

import pandas as pd
from simpest.models.franchestyn import FranchestynConfig, run_franchestyn

weather_df = pd.read_csv("weather.csv")
management_df = pd.read_csv("management.csv")
crop_model_df = pd.read_csv("crop_model.csv")
ref_df = pd.read_csv("reference.csv")

config = FranchestynConfig(
    crop_type="wheat",
    disease_type="septoria",
    fungicide_type=None,
    site="indiana",
    variety="Generic",
    disease="thisDisease",
    is_calibration=False,
)

result = run_franchestyn(
    start_year=2018,
    end_year=2019,
    config=config,
    weather_df=weather_df,
    management_df=management_df,
    crop_model_df=crop_model_df,
    ref_df=ref_df,
)
print(result["outputs"]["summary"])

For the full pipeline — running SIMPLACE first and converting its output into the DataFrames above — see the example notebooks at docs/examples/1_Run Simpest.ipynb and docs/examples/2_Plot.ipynb.

Directory layout

simpest/
|- docs/                # MkDocs documentation site and example notebooks
|- simpest/
|  |- common.py
|  |- simpest.py
|  |- models/
|     |- simplace.py         # SIMPLACE crop growth integration
|     |- franchestyn.py      # disease/fungicide simulation entry points
|     |- fr_runner.py        # end-to-end daily simulation loop
|     |- fr_crop_model.py    # daily crop growth + disease damage mechanisms
|     |- fr_disease_model.py # SEIR disease model
|     |- fr_fungicide_model.py
|     |- fr_optimizer.py     # multi-start Nelder-Mead calibration
|     |- fr_data.py          # input/output/parameter data structures
|     |- fr_*_reader.py      # weather, parameter, and reference data readers
|- tests/
|- mkdocs.yml
|- pyproject.toml
|- README.md

Documentation

Full documentation, including the API reference, is published at https://KaziJahidurRahaman.github.io/simpest. Locally:

Contributing

Contributions are welcome — see Contributing for how to set up a development environment and the pull request process.

Project

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simpest-0.0.7.tar.gz (13.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simpest-0.0.7-py2.py3-none-any.whl (60.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file simpest-0.0.7.tar.gz.

File metadata

  • Download URL: simpest-0.0.7.tar.gz
  • Upload date:
  • Size: 13.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for simpest-0.0.7.tar.gz
Algorithm Hash digest
SHA256 c746dd3183a7475c7794c6f87f11afe8d87e7852daa56e1aaf5a56a1a76314cf
MD5 4d5af1d22c419a2f51d0ea134e566036
BLAKE2b-256 357b8688d9a9776666c24282ec2258a675152cf5412126ab2e982804dffeafb6

See more details on using hashes here.

File details

Details for the file simpest-0.0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: simpest-0.0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 60.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for simpest-0.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 862a6669add15089672a0a67470235c9e5000dcaa54244f4595ace025b77da62
MD5 9e0d60ecc9a9063a2311c39954111e45
BLAKE2b-256 314504c40351ec00095c68a36a2acc1021e1979a6c45185be3bcba0f23896422

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 files

0.0.4

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page