Class EvapTranDemand
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
EvapTranDemand.java estimates the potential crop transpiration and potential soil evaporation either from daily reference ET (REFET) measurements which are specified by the user or by a modified PENMAN approach.
Reference ET measurements (Citation to this section not found)
This approach assumes that daily observations of a reference ET (r.g. Class A Pan evaporation) are available. If the user-specified measured REFET (mm d-1) is used, the SimComponent calculates the potential crop transpiration (PTRAN in mm d-1) as
\[ \begin{eqnarray} PTRAN & = & REFET \cdot f \end{eqnarray} \]where f is a function of the intercepted radiation (fractionalInterception) and of a FractionModifierFactor which is by default 1.2 but can be modified in the solution by the user. The fraction modifier assumes that the reference ET estimated from an open water surface (like Class A pan measurements) is lower than the reference ET from a well-water, dense vegetation cover. The radiation fraction intercepted by the crop (fractionalInterecption) is estimated with
\[ \begin{eqnarray} fractionalInterception & = & 1.0 - e^{-K \cdot LAI} \end{eqnarray} \]where K is the extinction coefficient for photosynthetically active radiation (by default 0.6) and LAI is the leaf area index at a given day.
The potential soil evaporation (PEVAP in mm d-1) is then estimated as the difference between REFET and PTRAN:
\[ \begin{eqnarray} PEVAP & = & REFET - PTRAN \end{eqnarray} \]Modified PENMAN approach (Van Oijen and Lefelaar, 2008)
The modified PENMAN approach calculates potential crop transpiration (PTRAN in mm d-1 or kg m-2 d-1) as
\[ \begin{eqnarray} PTRAN & = & (1.0 - e^{0.5 \cdot LAI}) \frac {NRADC \cdot \frac{SLOPE}{(SLOPE+0.067)} + 2.4 \cdot 10^{6} \cdot WDF \cdot (SVP - VP) \cdot PSYCH / (SLOPE + PSYCH)}{2.4\cdot 10^{6}} \end{eqnarray} \]where PSYCH is the psychrometric constant (0.067 kPa °C-1) and, assuming 25% reflection from the crop canopy, NRADC (net radiation absorption rate by the crop in J m-2 d-1) is
\[ \begin{eqnarray} NRADC & = & DTR \cdot 10^{6} \cdot (1.0 - 0.25) - BOLTZM \cdot (DAVTMP+273.0)^{4} \cdot 86400 \cdot MAX(0.0, 0.55 \cdot (1.0- \frac{VP}{SVP})) \end{eqnarray} \]with DTR as the daily solar radiation (J m-2 d-1), DAVTMP as the mean air temperature (°C), BOLTZM as Stefan-Boltzman constant (5.668 10^-8 J m-2 s-1 K-4), VP as the mean daily vapour pressure (kPa) and SVP as the saturated vapour pressure (kPa).
The slope of the saturation vapor pressure curve is calculated as
\[ \begin{eqnarray} SLOPE & = & 4158.6 \cdot \frac {SVP} {(DAVTMP+239.0)^{2}} \end{eqnarray} \]and the wind function (WDF) is defined as
\[ \begin{eqnarray} WDF & = & 2.63 * (1.0 + 0.54 * WN) \end{eqnarray} \]where WN is the average daily wind speed (m s-1) at a height of 2 m.
Potential soil evaporation (PEVAP in mm d-1 or kg m-2 d-1) is calculated as
\[ \begin{eqnarray} PEVAP & = & e^{(-0.5*LAI)} \cdot \frac{(NRADS \cdot \frac{SLOPE}{(SLOPE+PSYCH)} + 2.4 \cdot 10^{6} \cdot WDF \cdot (SVP - VP) \cdot \frac{PSYCH}{SLOPE + PSYCH}}{2.4\cdot 10^{6}} \end{eqnarray} \]where NRADS is the net radiation absorption rate by the soil in J m-2 d-1 with
\[ \begin{eqnarray} NRADS & = & DTR \cdot 10^{6} \cdot (1.0 - 0.15) - BOLTZM \cdot (DAVTMP+273.0)^{4} \cdot 86400 \cdot MAX(0.0, 0.55 \cdot (1.0- \frac{VP}{SVP})) \end{eqnarray} \]assuming 15% reflection from the soil surface.
References: van Oijen, M. and P. Leffelaar. 2008. Lintul-2: water limited crop growth: A simple general crop growth model for water-limited growing conditions. Waageningen University, The Netherlands.
- Author:
- Gunther Krauss, Andreas Enders, Thomas Gaiser
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cFractionModifierFactor | User-defined modifier to increase the intercepted radiation by default by 20% | DOUBLE | 1 | 0.0 | 10.0 | 1.2 |
constant | cK | Extinction coefficient for photosynthetically active radiation | DOUBLE | 1 | 0.0 | 1.0 | 0.6 |
constant | cUseOpenPanEvaporation | Flag to use the measured values of the reference ET (REFET) | BOOLEAN | 1 | - | - | true |
input | iAirTemperatureMean | Mean daily air temperature | DOUBLE | °C | -50.0 | 50.0 | - |
input | iLAI | Leaf Area Index | DOUBLE | m2/m2 | 0.0 | 10.0 | - |
input | iOpenPanEvaporation | Observed/measured open pan evaporation | DOUBLE | mm/d | 0.0 | 20.0 | - |
input | iRAIN | Daily precipitation | DOUBLE | mm/d | 0.0 | 400.0 | - |
input | iRadiation | Daily solar radiation | DOUBLE | MJ/(m2 d) | 0.0 | 40.0 | - |
input | iVapourpressure | Daily vapour pressure | DOUBLE | kPa | 0.0 | 20.0 | - |
input | iWindspeed | Average daily wind speed at 2 m height | DOUBLE | m/s | 0.0 | 50.0 | - |
out | PotentialEvapotranspiration | Sum of potential soil evaporation and crop transpiration as calculated by the modified PENMAN apporach | DOUBLE | mm/d | 0.0 | 22.0 | 0.0 |
out | PotentialSoilEvaporation | Potential soil evaporation according to PENMAN | DOUBLE | mm/d | 0.0 | 20.0 | 0.0 |
out | PotentialTranspiration | Potential crop transpiration according to PENMAN | DOUBLE | mm/d | 0.0 | 20.0 | 0.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
-
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) Create the FWSimVariables as interface for this SimComponentfillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
Initializes the fields by getting input and output FWSimVariables from VarMapprotected void
process()
Process the algorithm and write the results back to VarMapMethods 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
-
Constructor Details
-
EvapTranDemand
public EvapTranDemand()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
Create the FWSimVariables as interface for this SimComponent- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.createVariables()
-
init
protected void init()Initializes the fields by getting input and output FWSimVariables from VarMap- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.init()
-
process
protected void process()Process the algorithm and write the results back to VarMap- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
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.- Specified by:
fillTestVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
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) - Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-