1. Wetted area
When I tried to simulate different irrigation techniques (furrow vs surface vs drip), which all have different sizes of wetted areas, AOSPy (as well as MATLAB version) did not replicate the soil evaporation response that desktop AquaCrop had. Namely, the soil evaporation values in AOS barely differed among different irrigation techniques when one would expect drip to produce substaintially lower numbers.
The reason for this lies in the inability of AOS to limit the wetted area on the next days after irrigation. For example, on the day when drip irrigation is applied (30 % wetted area) the soil evaporation in AOS is limited to the wetted area, but on the next day it goes back to 100 %. This doesn’t follow the desktop AquaCrop logic that keeps the wetted area limited to 30 % on the subsequent days unless the rainfall occurs which resets it back to 100 % (see this logic explained in Eq. 3.9g in the reference manual).
I fixed this issue by introducing a new variable to NewCond which tracks the changes in the wetted area to accurately estimate daily soil evaporation. The corresponding code in solution.py(scroll down to Partial surface wetting by irrigation part) looks as following:
==== changes ==== if (Rain > 0) or (NewCond.SurfaceStorage > 0): NewCond.Wetted_area = 1 elif Irr > 0: NewCond.Wetted_area = IrrMngt_WetSurf/100 EsPotIrr = EsPot * NewCond.Wetted_area ==== changes ====
2. Irrigation efficiency
In MATLAB and Python AOS versions the irrigation application efficiencies are calculated differently.
MATLAB: 100/IrrMngt.AppEff Python: ((100-IrrMngt.AppEff)+100)/100
I would suggest to keep the same logic as in MATLAB