Klasse ErosionRoseAPSIM

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.experimental.erosion.ErosionRoseAPSIM
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class ErosionRoseAPSIM extends net.simplace.sim.model.FWSimComponent

This SimComponent calculates soil erosion using the Rose model which is based on a simplified sediment concentration function described by Rose (1985). 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 general equation is given as:

\[ \begin{eqnarray} A Ungültige Eingabe: "&" = Ungültige Eingabe: "&" 2700 \cdot S \cdot (100 - COV) \cdot \lambda \cdot \frac{Q}{100} \end{eqnarray} \]

Where A (SoilLoss) is the event soil loss (t/ha); S (cSlopePercent) is the slope angle (%); COV is the soil cover (%) (iCoverFrac * 100); Q (iRunoff) is the event runoff (mm); and \( \lambda \) is a factor approximating efficiency of entrainment (dimensionless). 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). The efficiency of entrainment \( \lambda \) is calculated as follows:

\[ \begin{eqnarray} \lambda Ungültige Eingabe: "&" = Ungültige Eingabe: "&" \lambda_{bare} \cdot e^{-\beta \cdot COV} \end{eqnarray} \]

Where \( \lambda_{bare} \) (cEntrainEff) is the efficiency of entrainment of bare surface (dimensionless); and \( \beta \) (cErosRoseB2) is a cover ‘sensitivity’ factor (dimensionless). In special cases where a distinction should be made for the sediment load transport which is maintained in suspension by turbulence in the flowing water, users can prescribe \( \lambda_{bare} \) and \( \beta \) values for such cases respectively (cEntrainEffBed, cEntrainEffSusp, cErosRoseB2Bed, cErosRoseB2Susp). In this case, both cEntrainEff and cErosRoseB2 values should be prescribed as -1. The input 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 Ungültige Eingabe: "&" = Ungültige Eingabe: "&" \frac{[A \cdot (1e^6/1e^8)]}{cSoilBD[0]} \end{eqnarray} \]

References

Rose, C.W., 1985. Developments in soil erosion and deposition models. Adv. soil Sci. 2, 1–63. https://doi.org/10.1007/978-1-4612-5088-3_1

APSIM v7.1 source code. Last time accessed: Dec-14-2022. URL: https://github.com/APSIMInitiative/APSIMClassic/blob/83039e54200481899b4566761f47fd61d53b4fdf/Model/SoilErosion/SoilErosion.cs

Littleboy, M., D.M. Silburn, D.M. Freebairn, D.R. Woodruff, G.L. Hammer, and J.K. Leslie. 1992. Impact of soil erosion on production in cropping systems. I. Development and validation of a simulation model. Aust. J. Soil Res. 30, 757-774.

Holzworth, Dean P., Neil I. Huth, Peter G. deVoil, Eric J. Zurcher, Neville I. Herrmann, Greg McLean, Karine Chenu, et al. "APSIM - Evolution towards a New Generation of Agricultural Systems Simulation." Environmental Modelling <span class="invalid-tag">Ungültige Eingabe: "&"</span> Software 62 (December 2014): 327–350. https://doi.org/10.1016/j.envsoft.2014.07.009

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

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcEntrainEffEfficiency of entrainment - bare surfaceDOUBLE1--0.7
constantcEntrainEffBedEfficiency of entrainment - bare surface - bed loadDOUBLE1--0.72
constantcEntrainEffSuspEfficiency of entrainment - bare surface - suspended loadDOUBLE1--0.08
constantcErosRoseB2Coefficient for calculating lambda in \"rose\" sub-modelDOUBLE1--0.15
constantcErosRoseB2BedCoefficient for calculating lambda in \"rose\" sub-model - bed loadDOUBLE1--0.15
constantcErosRoseB2SuspCoefficient for calculating lambda in \"rose\" sub-model - suspended loadDOUBLE1--0.15
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--
  • Verschachtelte Klassen - Übersicht

    Von Klasse geerbte verschachtelte Klassen/Schnittstellen net.simplace.sim.model.FWSimComponent

    net.simplace.sim.model.FWSimComponent.TEST_STATE
  • Feldübersicht

    Von Klasse geerbte Felder net.simplace.sim.model.FWSimComponent

    iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
     
    ErosionRoseAPSIM(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)
     
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    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
     

    Von Klasse geerbte Methoden 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

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Konstruktordetails

    • ErosionRoseAPSIM

      public ErosionRoseAPSIM()
    • ErosionRoseAPSIM

      public ErosionRoseAPSIM(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)
      Parameter:
      aName -
      aFieldMap -
      aInputMap -
      aSimComponentElement -
      aVarMap -
      aOrderNumber -
  • Methodendetails

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Angegeben von:
      createVariables in Schnittstelle net.simplace.sim.util.FWSimFieldContainer
      Angegeben von:
      createVariables in Klasse net.simplace.sim.model.FWSimComponent
    • init

      protected void init()
      Angegeben von:
      init in Klasse net.simplace.sim.model.FWSimComponent
    • process

      protected void process()
      Angegeben von:
      process in Klasse 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.
      Angegeben von:
      fillTestVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
    • clone

      protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap)
      Angegeben von:
      clone in Klasse net.simplace.sim.model.FWSimComponent