OSPy parameters documentation

Hi all!

My team and I just discovered AquaCrop OSPy existence, thanks a lot for this work! We saw that it’s quite easy to use, and at the same time everything can be customizable. We would like to experiment a bit with the parameters for each class, but we are having a hard time finding the definition of each variable.
We saw the notebooks in the github repository and the publication introducing the package, but nothing on explaining parameters (i.e., the abbreviation meanings, units, definitions …). We also read the documentation linked on the github (here) but it does not go into the details we are looking for: parameters of all input and outputs classes (soil, crop, weather, all outputs) with default values and definition, something similar to what is in the table of AquaCrop-OSPy: Notebook 2 for the irrigation management.
Have we missed some documentation? As a last resort, is AquaCrop OS documentation acceptable for AquaCrop OSPy in terms of variables about the weather, the crop, the soil?
For most parameters, we can guess the meaning and units, but a confirmation is always better.

Thank you very much,
Léa

1 Like

Hi @ltresch

Thanks for your question. Within tutorial Notebook 1 there are tables for each class which given expplanations for all input and output variables. This is an example from tutorial notebook 1:

For some of these tables you have to scroll down to the appendix so maybe a better soluttion is needed. Could be easier if i add a seperate docs page called ‘definitions’ so that it is all in one place for people to look up.

Thanks
Tom

Hi @tom,
Thanks for your answer! So, in notebook 1, there are definitions for crop, soil and management classes. Notebook 2 has some more details about irrigation parametrisation.
I missed the data in notebook 1, very sorry.

However, when I was posting I was actually wondering about parameters in the soil class table and unfortunately I could not find information about this specifically. If we have:

custom = SoilClass('custom',CN=46,REW=7)
custom.add_layer_from_texture(thickness=custom.zSoil,
                              Sand=10,Clay=35,
                              OrgMat=2.5,penetrability=100)
custom.profile

This outputs a table:


Are those variables specified in notebook 1 as well? I could not find this information, sorry. Once again, all the variables could be guessed but it’s not the best thing to do.
The weather dataset variables (and units) are specified in notebook 1, but only on a screenprint. Maybe a table would be better for quick searching?

Also, the variables explained in the notebook 1 are very clear. I just have a few questions about some outputs:

  • biomass in model.Outputs.Growth: is it the above-ground biomass? whole biomass (roots+above ground) …? or maybe it depends on the crop type?
  • yield in model.Outputs.Growth: is it the yield gained on this day? or the accumulated yield until this DAP?
  • total irrigation in model.Outputs.Final: is it only the irrigation management or does it include all water going into the soil (i.e. irrigation, precipitation)?

Finally -slightly off topic-, I’ve seen in the soil parameters than the initial values for field capacity and wilting point are not listed as alterable, but are required when adding a custom layer (add_layer, not add_layer_from_texture).
In the case of a “known” texture (for example, SandyLoam) or of the function add_layer_from_texture, how are they calculated? If it uses pedotransfer functions, how where those chosen? how well do these calculations perform on different climate/regions around the world (as several pedoclimatic functions exist for different areas)?
Are these parameters and CalcSHP linked ?

Thanks once again! I hope that those questions are not already answered already, sorry for my first post.
Léa

Hi @ltresch

Your right these soil parameters have not been properly defined, will add this to the next version. They are:

  • Soil compartment number
  • Soil layer number
  • depth of compartment (m)
  • cumulative sum of depths (m)
  • Depth at bottom of compartment (m)
  • Depth at top of compartment (m)
  • Depth in middle of compartment (m)
  • Water content when dry (m3 water / m3 soil)
  • Water content when at wilting point (m3 water / m3 soil)
  • Water content when at field capacity (m3 water / m3 soil)
  • Water content when at saturation (m3 water / m3 soil)
  • Hydraulic conductivity at saturation (mm/day)
  • Penetrability of soil compartment (%)
  • drainage characteristic tau (fractional)

Here is a screenshot from the reference manual which gives an explanaiton fo Ksat and tau.

For your other questions:

  • Biomass is the dry above ground biomass
  • Yield is the total accumulated yield so far
  • total irrigation does not include precipitation. This can be found in the Outputs.Flux dataframe however it might be useful to add precipitation to the Outputs.Final dataframe in the next update.

Finally, the hydraulic properties for the built in soil types (e.g. sandy loam) were taken from AquaCrop Windows input files. So these may be different depending on the region or how you define sandy loam. The SoilClass.calculate_soil_hydraulic_properties method uses equations and paramaters taken from Saxton and Rawls (2006).

Hopefully these answers help but feel free to ask any more questions you have

Thanks
Tom

1 Like

Hi,
Thank you very much for your detailed answer! I don’t have any further questions. Thank you for your (impressive) work!
Kind regards,
Léa