SARRA-cropmodels / SARRA-Py

GNU General Public License v3.0
5 stars 1 forks source link

Difference between load_iSDA_soil_data() and load_iSDA_soil_data_alternate() #7

Open codename5281 opened 3 months ago

codename5281 commented 3 months ago

A user (@mmmmansour) has a question about soil data preparation functions.

He launched one simulation using the default load_iSDA_soil_data() function, and the other using load_iSDA_soil_data_alternate().

He obtained contrasted results.

With load_iSDA_soil_data():

image

With load_iSDA_soil_data_alternate():

image

To understand these differences, we should explain how these functions are working. Both functions aim at loadig soil physical properties map that are used to obtain a soil water holding capacity. This water holding capacity ("reserve utile", ru) is used in the computations of daily soil water balance.

load_iSDA_soil_data() loads a soil depth data raster (gyga_af_erzd__m_1km.tif, distributed by ISRIC at this address) and a soil texture class (USDA system) raster (iSDA_at_TAMSAT_resolution_zeroclass_1E6.tif), distributed by iSDA at this address. From the USDA soil texture classification, the function then maps soil properties maps (from the file TypeSol_Moy13_HWSD.csv). These soil properties per class include:

On the other hand, load_iSDA_soil_data_alternate() will load the reserve utile from gyga_af_agg_erzd_tawcpf23mm__m_1km.tif, which is provided as calculated by ISRIC at this address.

Overall, this means that the water holding capacity of the soil from the second method is provided by a mapped product and will be more continuous in space, whereas the first method will lead to ruptures in the maps, hence some artifacts.

But it is clear that a clearer documentation of these two functions is needed. For the record, the alternate version was quickly implemented for testing purpose, hence this lack of clarity in the documentation.

mmmmansour commented 3 months ago

Thank you for these answers, I admit that it shed more light on the difference between these two functions.