Klasse SnowCoverCalculator

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.soil.temperature.SnowCoverCalculator
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class SnowCoverCalculator extends net.simplace.sim.model.FWSimComponent
Calculates the snow cover, first soil layer temperature and biomass on ground factor depending on climate and soil conditions.

Snow Cover

Snow Cover is calculated using the formula:

\[ \begin{eqnarray} DST0=(1.-BCV) \cdot DST + BCV \cdot STMP0 \end{eqnarray} \]

Snow Cover calculation

If the soil surface is not bare, the surface temperature can be affected considerably by the amount of cover (crop residue or snow). This effect can be simulated by combining the estimated bare surface temperature for the day with the previous day's temperature in the second soil layer (the top 10 mm layer is considered too thin for this purpose).

where DST0 is the final estimate of soil surface temperature in °C and BCV is a lagging factor for simulating residue and snow cover effects on surface temperature. The value of BCV is 0.0 for bare soil and approaches 1.0 as cover increases, as expressed in the equation

\[ \begin{eqnarray} BCV Ungültige Eingabe: "&"=Ungültige Eingabe: "&" max(SNOF,BCV') \\ BCV' Ungültige Eingabe: "&"=Ungültige Eingabe: "&" \frac{CV}{CV+exp(5.34-2.40 \cdot CV)} \\ SNOF Ungültige Eingabe: "&"=Ungültige Eingabe: "&" \frac{SNO}{SNO+exp(2.30-0.220 \cdot SNO)} \end{eqnarray} \]

where

  • CV is the sum of above ground biomass and crop residue in t ha-1 and
  • SNO is the water content of the snow cover in mm.

Snow melt

If snow is present, it may be melted on days when the second soil layer temperature exceeds 0 oC. Snow is melted as a function of the snow pack temperature using the equation

\[ \begin{eqnarray} SML Ungültige Eingabe: "&"=Ungültige Eingabe: "&" max(0.,X1 \cdot (1.52+.54 \cdot F \cdot SNPKT)) \quad \text{for} \quad 0.0 \lt SML \lt SNO \\ SNPKT Ungültige Eingabe: "&" =Ungültige Eingabe: "&" .3333 \cdot (2. \cdot X2+TX) \\ X1 Ungültige Eingabe: "&"=Ungültige Eingabe: "&" \sqrt{TMX \cdot RA} \\ X2 Ungültige Eingabe: "&"=Ungültige Eingabe: "&" min(DST0,STMP(2)) \\ F Ungültige Eingabe: "&"=Ungültige Eingabe: "&" TSNO/(TSNO+exp(5.34-2.395 \cdot TSNO)) \end{eqnarray} \]

where

  • SML is the snowmelt rate in mm d-1,
  • SNO is the snow present in mm of water,
  • STMP is the temperature in oC of soil layer 2,
  • SNPKT is the snow pack temperature in oC,
  • DST0 is the soil surface temperature in oC, and
  • TSNO is the age of the snow pack in d.

The equations for estimating STMP and DST0 are presented in the soil temperature section. Melted snow is treated the same as rainfall for estimating runoff volume and percolation, but rainfall energy is set to 0.0 and peak runoff rate is estimated by assuming uniformly distributed rainfall for a 24-h duration.

Snow evaporation

EAJ is a soil cover index. The value of EAJ ranges from 0 to 1.0 according to the equation

\[ \begin{eqnarray} EAJ Ungültige Eingabe: "&" = Ungültige Eingabe: "&" exp(-X1) \\ X1 Ungültige Eingabe: "&" = Ungültige Eingabe: "&" max(0.4 \cdot SMLA,0.1 \cdot (CV+.1)) \end{eqnarray} \]

where

  • CV is the weight of all above ground plant material in t ha-1.

Reference:

Williams, J.R., Izaurralde, C.A., 2005. The APEX model, Blackland Research Center Reports, Vol. 2. Blackland Research Center, USDA, Temple, Texas, USA

Autor:
Andreas Enders, Gunther Krauss

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcAlbedoAlbedo, if not set it will be initializedDOUBLE10.01.00.0
constantcCarbonContentCarbon content of upper soil layerDOUBLE%0.520.00.5
constantcInitialAgeOfSnowInitial age of snowINT%0-0
constantcInitialSnowWaterContentInitial snow water contentDOUBLE%0.01500.00.0
constantcSnowIsolationFactorAStatic part of the snow isolation index calculationDOUBLE10.010.02.3
constantcSnowIsolationFactorBDynamic part of the snow isolation index calculationDOUBLE10.01.00.22
inputiCropResiduesCrop residues plus above ground biomassDOUBLEg/m20.020000.0-
inputiDoInitializeSwitch to re-initialize the model with initial values.BOOLEAN1--false
inputiLeafAreaIndexLeaf area indexDOUBLEm2/m20.010.0-
inputiPotentialSoilEvaporationPotenial EvaporationDOUBLEmm0.012.00.0
inputiRAINRain amountDOUBLEmm0.060.00.0
inputiRadiationGlobal Solar radiationDOUBLEMJ/m20.02000.0-
inputiSoilTempArraySoil Temp array of last dayDOUBLEARRAY°C-15.035.0-
inputiTempMaxDaily maximum air temperatureDOUBLE°C-40.050.0-
inputiTempMinDaily minimum air temperatureDOUBLE°C-40.050.0-
stateAgeOfSnowAge of snowINTd0-0
stateSnowWaterContentSnow water contentDOUBLEmm0.01500.00.0
stateSoilSurfaceTemperatureSoil surface temperatureDOUBLE°C-40.070.00.0
raterAgeOfSnowRatedaily age of snow change rateINT1--0
raterSnowWaterContentRatedaily snow water content change rateDOUBLEmm/d-1500.01500.00.0
raterSoilSurfaceTemperatureRatedaily soil surface temperature change rateDOUBLEdegree_Celsius_per_day-40.070.00.0
outSnowIsolationIndexSnow isolation indexDOUBLE10.01.00.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
    Empty constructor used by class.forName()
  • 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<?>>
    create the FWSimVariables as interface for this SimComponent
    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
    initializes the fields by getting input and output FWSimVariables from VarMap
    protected void
    process the algorithm and write the results back to VarMap
    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

    • SnowCoverCalculator

      public SnowCoverCalculator()
      Empty constructor used by class.forName()
  • Methodendetails

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      create the FWSimVariables as interface for this SimComponent
      Angegeben von:
      createVariables in Schnittstelle net.simplace.sim.util.FWSimFieldContainer
      Angegeben von:
      createVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.createVariables()
    • init

      protected void init()
      initializes the fields by getting input and output FWSimVariables from VarMap
      Angegeben von:
      init in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.init()
    • reInitialize

      protected void reInitialize()
    • process

      protected void process()
      process the algorithm and write the results back to VarMap
      Angegeben von:
      process in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.process()
    • 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. aParamIndex: Used to set up different test cases. Start with 0 - result check with 1 aso
      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
      Siehe auch:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)