PyQt app, Digital Twin Farm for locations in Kenya. Using PCSE and WOFOST models.
# Kenya Digital Farm Twin - WOFOST Crop Simulator
A PyQt5 desktop application for running WOFOST 8.1 crop simulations with nitrogen and water limitation for various locations in Kenya.
# Screenshot
## Features
### Main Configuration
- **Crop Selection**: Choose from 9 crops (barley, wheat, rice, soybean, cowpea, groundnut, potato, cassava, sweetpotato)
- **Variety Selection**: Each crop has pre-configured varieties optimized for WOFOST 8.1
- **Planting Date**: Calendar picker with crop-specific default dates
- **Location Selection**: Interactive map of Kenya with 7 key agricultural locations
- **Yield Gap Factor**: Adjustable ratio (0.1-1.0) comparing actual farmer yields to simulated potential
### Settings Pages
1. **Soil Parameters**
- Water retention: SM0, SMFCF, SMW, CRAIRC
- Physical properties: RDMSOL, K0, SOPE, KSUB
- Nitrogen: NSOILBASE, NSOILBASE_FR
- Pre-configured soil types: Nitisol, Andosol, Vertisol, Ferralsol, Luvisol
2. **Fertilizer Scenarios**
- None (0 kg N/ha) - Baseline
- Low (25 kg N/ha) - Typical smallholder
- Medium (50 kg N/ha) - Improved smallholder
- Recommended (75 kg N/ha) - Extension recommendation
- High (100 kg N/ha) - Commercial/intensive
- Enable/disable individual scenarios
- Customizable application timing and recovery fractions
### Interactive Graphs
1. **Figure 1: Nitrogen Response Curve** - Bar chart and response curve showing yield by N rate
2. **Figure 2: Growth Dynamics Comparison** - LAI, biomass, yield accumulation, DVS across scenarios
3. **Figure 3: Detailed Crop Growth** - Four-panel view of selected scenario
4. **Figure 4: Multi-Year Analysis** - Yield variability and biomass comparison
5. **Figure 5: Yield Gap Comparison** - Actual vs potential yield visualization
All graphs include:
- Matplotlib navigation toolbar (zoom, pan, save)
- Interactive tooltips
- High-quality export options
## Installation
### Prerequisites
- Python 3.8 or higher
- pip package manager
### Install Dependencies
```bash
# Create …