Seminar, Introduction to Digital Agro.
Crop models - pdf
Open Seminar_Crop_Model.ipynb
in Google Colab!
Open Seminar_Sensitivity_analysis.ipynb
in Google Colab!
PCSE/WOFOST - Python Crop Simulator Environment
https://pcse.readthedocs.io/en/stable/
SAlib - Sensitivity Analysis Library in Python
https://salib.readthedocs.io/en/latest/
Clone this repository and create new conda env
on your local machine
git clone https://github.com/EDSEL-skoltech/Intro_to_Digital_Agriculture
Create new env with pcse
package for crop models WOFOST
cd Crop_models
conda env create -f py3_pcse.yml
conda activate py3_pcse
Mikhail Gasanov – [email protected]
Distributed under the MIT license. See LICENSE
for more information.
In our lab work, we will use the crop simulation model WOFOST. Documentation for package and model: https://pcse.readthedocs.io/. Your task will be to conduct any crop growth simulations for several years for the Moscow region or any other. It will also be necessary to conduct a sensitivity analysis and optimize the irrigation strategy. For sensitivity analysis, we will use the SALib package. For optimization, we will use Nevergrad package.
All the necessary data is available in the GitHub repository and in Google Colabs.
Assess the yield of one of the crops for the Moscow region over several years (potatoes, sugar beets or others)
- Crop - List of crops
- Weather - NASAdataprovider in PCSE
Generate plots for biomass growth, crop yield and seasonal weather for one year
Plot weather dynamics (T min
, ET0
or others)
Agromanagement for Moscow Potato crop and NPK fertilization
"name": "Potato",
"latitude": 54.85,
"longitude": 38.85,
"crop_start": "2019-04-20",
"crop_end": "2019-09-15",
"crop_name": "potato",
"npk_events": ["2019-06-22"],
"npk": [[90,10,90]]
from pcse.fileinput import YAMLCropDataProvider
cropd = YAMLCropDataProvider()
cropd.print_crops_varieties()
- Perform sensitivity analysis of one of the model blocks (crop, soil, agromanagement *) with SALib. You can choose one of the methods that you consider necessary (Sobol, FAST, ...). Generate samples – In report provide the size of the resulting matrix and the sample size (N). Conduct parameter sensitivity analysis - In report provide S1 and ST indices.
List of available crop parameters: df=pd.read_excel("./data/ScalarParametersOfWofost-Potential.xlsx") display(df) - Generate plots (Hist, etc.) *3) Speed-up sensitivity analysis with multiprocessing *4) Estimate the required number of simulations to obtain reliable values of the sensitivity indices. Try to estimate the sample size at the confidence interval of the sensitivity indices.
The task is to compare several optimizers from the Nevergrad package with the Random Search method. To do this, you can use the visualizations provided in the notebook. It is also necessary to determine the required size of the budget.
- Fork it (https://github.com/EDSEL-skoltech/Intro_to_Digital_Agriculturefork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request