Documentation for the Python Crop Simulation Environment (PCSE) PCSE was developed to implement Wageningen crop simulation models in a relatively simple and modular way. It enforces good modelling practice by strictly separating parameters, state and rate variables. Moreover, it takes care of the initialization of parameters and state variables and their types. Finally PCSE completely separates the input/output from the simulation model allowing it to retrieve data from different sources (file, database or an internet server) and storing model output can be easily adjusted as well. A distinctive feature of PCSE is that it supports the use of remote sensing observations in models through direct state updates and/or optimization techniques. Moreover, it supports the use of ensembles of models which opens the way for using ensemble Kalman filters or other techniques employing ensemble techniques (e.g. a particle filter).