APSIMInitiative / APSIM710

APSIM
https://www.apsim.info
31 stars 47 forks source link

Add patch capability in SoilNitrogen #1297

Closed ApsimBot closed 5 years ago

ApsimBot commented 5 years ago

Legacy Bug ID: 1864 Author: Rogerio Date: 2014-04-07 06:12:55 +0000 UTC

In order to simulate soil variability whose importance is mostly on soil N or C processes, it has been suggested that SoilNitrogen could be 'cloned' to represent separately different areas or patches of the paddock. Based on this, it will be implement the concept of 'patches' within SoilNitrogen. This will provide the capability to replicate SoilNitrogen processes an indefinite number of times, thus accounting for variability in N and/or C sources in the soil. These patches can be created or deleted dynamically. There should be no impact at all for simulations that do not demand this capability. Also all the existing variables and function/events remain the same. Few variables and events are added to handle and report information specific to the patches.  When using patches, the standard SoilNitrogen variables are given as the weighted average (by area) of the respective variables over all patches. Documentation will be produced for clarifying the usage and implications of incorporating soil variability within SoilNitrogen. 

It should be stressed that this capability does not account for all soil variability or the full extent of its effects; it should, however, take care of the processes most affected by variability in N or C sources in the soil (such as application of fertiliser or residues in bands, depositions of urine or dung, etc)
ApsimBot commented 5 years ago

Author: rcichota Date: 2017-07-24 14:04:00 +0000 UTC

Several changes were made to re-organize the code and enable the creation and deletion of patches within SoilNitrogen.  The details of this work are reported in: Snow, V.O.; Cichota, R.; McAuliffe, R.J.; Hutchings, N.J.; Vejlin, J. 2017. Increasing the spatial scale of process-based agricultural systems models by representing heterogeneity: The case of urine patches in grazed pastures. Environmental Modelling & Software, 90:89-106.

Briefly these changes consisted in moving the code for the processes into a new class (SoilCNPatch), which is instantiated once for a typical simulation, but can be also created and/or deleted dynamically via a manager script.  N and C contents can vary between patches. Each patch has a relative area which is used to compute the overall soil C and N variables.  The soil nitrogen class is thus a wrapper for the patches and handles the communications.  When using patches the inputs, i.e. changes (especially of N) can be distributed over the patches in different ways according to the model sending the change, for this all changes should be made using the NitrogenChanged event.  Moreover, plant uptake should consider the variables nh4_ or no3_PlantaAvailable (thus requiring a change in plant modules. currently only AgPasture has been modified).  When running simulation without creatng patches, no speciall procedures is needed and the results shold be the same as in the code without patches (beware of few [minor] changes due to bug fixing that happend in the mean time).