Work in progress — this repository is under active development. Workflows, tooling, and documentation are subject to change.
The repository contains computational workflows for crop simulation modelling created using the FAIRagro Scientific Workflow Infrastructure (SciWIn) tool.
Workflows are expressed in CWL v1.2 and executed with s4n, which runs each tool step inside a Docker container.
The full pipeline takes field observations (UAV-derived NDVI, crop calendar, and field metadata) and produces ready-to-run DSSAT crop simulation files alongside a results plot:
| Dependency | Purpose |
|---|---|
| s4n | CWL workflow runner |
| Docker | Container runtime used by s4n for each tool step |
| raster2sensor | Process and manage temporal vegetation indices from UAV images using the OGC SensorThings API standard |
| phenocover | Phenology analysis and ground-cover estimation |
| csmTools | ETL functions for DSSAT data integration |
- Copy
config-example.ymltoconfig.ymland fill in your FROST credentials:cp config-example.yml config.yml
- Run the full pipeline:
The script calls
./run-demo.sh
s4n execute local ./workflows/demo/demo.cwl config.ymland moves outputs tooutputs/.
Note:
config.ymlis gitignored — secret credentials are never committed.
fairagroUC6-workflows/
│
├── config-example.yml # Template for workflow configuration (copy → config.yml)
├── run-demo.sh # Entry-point script: executes demo.cwl via s4n
├── workflow.toml # Workflow metadata (name, version)
│
└── workflows/
├── raster2sensorTools/
│ └── fetch-ndvi.cwl # Download NDVI time series from FROST server
│
├── phenocoverTools/
│ └── phenology-analyzer.cwl # Wheat phenology analysis with weather integration
│
├── csmTools/ # Individual ETL steps (all backed by csmtools-cli image)
│ ├── get-field-data.cwl # Extract field metadata from ICASA template
│ ├── identify-production-season.cwl
│ ├── get-sensor-data.cwl # Download observations from FROST server
│ ├── convert-sensor-data-icasa.cwl
│ ├── get-weather-data.cwl # Download weather from NASA POWER
│ ├── convert-nasa-data-icasa.cwl
│ ├── get-soil-profile.cwl # Extract soil data from SoilGrids
│ ├── lookup-gs-dates.cwl # Identify growth stage dates from phenology
│ ├── convert-gs-dates-icasa.cwl
│ ├── assemble-icasa-dataset.cwl # Merge all data into a single ICASA dataset
│ ├── convert-icasa-dssat.cwl # Convert ICASA → DSSAT file format
│ ├── normalize-soil-profile.cwl
│ ├── calculate-initial-layers.cwl
│ ├── build-simulation-files.cwl # Generate DSSAT .filex, .sol, .wth files
│ ├── run-simulations.cwl # Execute DSSAT crop simulations
│ └── plot-results.cwl # Plot simulated vs. observed growth
│
├── demo/
└── demo.cwl # Top-level workflow wiring all steps above
