Class ErosionFreebairnAPSIM

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.soil.erosion.ErosionFreebairnAPSIM
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class ErosionFreebairnAPSIM extends net.simplace.sim.model.FWSimComponent
Predicts soil erosion considering runoff volume and soil cover fraction.

This SimComponent uses a modified Universal Soil Loss Equation proposed by Freebairn and Wockner (Freebairn & Wockner, 1986) to predict soil erosion considering runoff volume and soil cover fraction. The algorithm follows the same formulations used in the APSIM (Agricultural Production Systems sIMulator) platform, which was adapted from the PERFECT model (Littleboy et al., 1992). The model has the following form:

\[ \begin{eqnarray} SedConc & = & 16.52 - 0.46 \cdot COV + 0.0031 \cdot COV^2 & \text{(COV } \lt 50 \text{%)} \\ SedConc & = & 2.54 - 0.0254 \cdot COV & \text{(COV } \ge 50 \text{%)} \\ A & = & \frac{SedConc \cdot LS \cdot K \cdot P \cdot Q}{10} \end{eqnarray} \]

Where SedConc is the sediment concentration (g/L); A (SoilLoss) is the event soil loss (t/ha); COV is the soil cover (%) (iCoverFrac * 100), LS is the slope length and steepness factor (dimensionless); K (cKfac) is the soil erodibility factor (dimensionless), P (cPfac) is the supporting practice factor (dimensionless), and Q (iRunoff) is the event runoff (mm). The 1/10 in Eq. 3 resolves the unit’s conversion to obtain A in t/ha. The soil cover fraction (iCoverFrac) (0-1) can be calculated by the SimComponent RunoffSurfaceCover, whereas iRunoff (mm) can be obtained by one of the SimComponents which calculates runoff (e.g., RunoffCurveNumberAPSIM). LS is a slope and length factor in USLE approach, which is calculated with the below equations (Presbitero et al., 1995):

\[ \begin{eqnarray} LS & = & (65.41 \cdot S^2 + 4.56 \cdot S + 0.065) \cdot (L/22.1)^m \\ m & = & 0.6 \cdot [1-e^{(-35.835 \cdot S)}] \end{eqnarray} \]

Where S (cSlopePercent) is the slope angle (%), and L (cSlopeLength) is the length of the catchment (m). The soil bulk density (cSoilBD) in g/cm3 of the top layer is used to convert A from Eq. 3 from t/ha to mm (mmSoilLoss):

\[ \begin{eqnarray} mmSoilLoss & = & \frac{[A \cdot (1e^6/1e^8)]}{cSoilBD[0]} \end{eqnarray} \]

References

Author:
Murilo Vianna, Gunther Krauss, gk@uni-bonn.de

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcKfacSoil erodibility factorDOUBLE1--0.4
constantcPfacSupporting practise factorDOUBLE1--1.0
constantcSlopeLengthLength of plotDOUBLEm0.0--
constantcSlopePercentSlope in percentDOUBLE%0.0100.03.0
constantcSoilBDSoil bulk density per layerDOUBLEARRAYg/cm30.0--
inputiCoverFracFraction of surface cover (crop and residue)DOUBLE10.01.0-
inputiRunoffRunoffDOUBLEmm/d0.0200.00.0
outSedmentConcSedment concentration [g/L]DOUBLEg/l0.0--
outSedmentConcBedSedment concentration from bed load [g/L]DOUBLEg/l0.0--
outSedmentConcSuspSedment concentration from suspended load [g/L]DOUBLEg/l0.0--
outSoilLossSoil loss [ton/ha/day]DOUBLEt/ha0.0--
outmmSoilLossSoil loss [mm/day]DOUBLEmm0.0--
  • Nested Class Summary

    Nested classes/interfaces inherited from class net.simplace.sim.model.FWSimComponent

    net.simplace.sim.model.FWSimComponent.TEST_STATE
  • Field Summary

    Fields inherited from class net.simplace.sim.model.FWSimComponent

    iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ErosionFreebairnAPSIM(String aName, HashMap<String,net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String,String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
     
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
     
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
    fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck)
    called for single component test to check the components algorithm.
    protected void
     
    protected void
     

    Methods inherited from class net.simplace.sim.model.FWSimComponent

    addVariable, bind, checkCondition, createSimComponent, createSimComponent, createSimComponent, createSimComponent, doProcess, getConstantVariables, getContentType, getCreateFormXML, getDescription, getEditFormXML, getFieldMap, getFrequence, getFrequenceRuleScript, getInputs, getInputVariables, getMasterComponentGroup, getName, getOrderNumber, getOutputVariables, getVariable, getVariableField, getVarMap, initialize, isConditionCheck, isVariableAvailable, performLinks, performLinks, readInputs, removeVariable, reset, runComponentTest, setVariablesDefault, toComponentLinkingXML, toDocXML, toGroupXML, toOutputDefinitionXML, toResourcesDataXML, toResourcesDefinitionXML, toString, toXML, writeVarInfos

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ErosionFreebairnAPSIM

      public ErosionFreebairnAPSIM()
    • ErosionFreebairnAPSIM

      public ErosionFreebairnAPSIM(String aName, HashMap<String,net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String,String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber)
      Parameters:
      aName -
      aFieldMap -
      aInputMap -
      aSimComponentElement -
      aVarMap -
      aOrderNumber -
  • Method Details

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Specified by:
      createVariables in interface net.simplace.sim.util.FWSimFieldContainer
      Specified by:
      createVariables in class net.simplace.sim.model.FWSimComponent
    • init

      protected void init()
      Specified by:
      init in class net.simplace.sim.model.FWSimComponent
    • process

      protected void process()
      Specified by:
      process in class net.simplace.sim.model.FWSimComponent
    • fillTestVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck)
      called for single component test to check the components algorithm.
      Specified by:
      fillTestVariables in class net.simplace.sim.model.FWSimComponent
    • clone

      protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap)
      Specified by:
      clone in class net.simplace.sim.model.FWSimComponent