net.simplace.sim.transformers.PedotransferTransformer

Takes data with depth, clay percentage, silt percentage, sand percentage (optional, default 100-(clay+silt)), organic matter percentage (optional, default 0) bulk density (optional, default 1.4), top soil depth (optional, default 0.3 m), pedotransfer function (optional, default 'Hypres'), gravel percentage (optional, default 0) in n soil layers and transforms it to Van Genuchten parameters alpha, l, m, n and Ks or volumentric water contents.

Description

Soil data is mostly delivered with the layer specific information. The layers have different depth and are varying in their count. This Transformer takes the texture data with these n different depth layers and creates Van Genuchten and Volumetric Water Content data.

Array fields like DOUBLEARRAY for the different parameters. Depending on the fields that you put into the header the different fields are calculated.

Configuration

requested structure of configuration element:

<transform id="soil_transform" resource="soil" source="vSoiltype" class="net.simplace.sim.transformers.PedotransferTransformer" >
<header>
<res id="soiltype" datatype="CHAR"  key="vSoiltype" />
<res id="depth" unit="m" datatype="DOUBLEARRAY"/>
<res id="VanGenuchtenAlpha" unit="g/100g" datatype="DOUBLEARRAY"/>
<res id="VanGenuchtenL" unit="g/100g" datatype="DOUBLEARRAY"/>
<res id="VanGenuchtenM" unit="g/100g" datatype="DOUBLEARRAY"/>
<res id="VanGenuchtenN" unit="g/100g" datatype="DOUBLEARRAY"/>
<res id="SaturatedHydraulicConductivity" unit="g/100g" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent0" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent6" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent33" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent200" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent1500" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent6to1500" unit="percent" datatype="DOUBLEARRAY"/>
<res id="VolumenticWaterContent33to1500" unit="percent" datatype="DOUBLEARRAY"/>
</header>
<input id="pedotransferfunction">Hypres</input> ... until now only Hypres and Rawls - default to Hypres
<input id="topsoildepth">0.3</input> ... in m, default to 0.3
<input id="depthfieldid">depth</input> ... or ...
<input id="depth">{0.05,0.3,0.6,1.0,1.5}</input>
</transform>

Please note: Only columns, where the column names have been added to the header of the resource definition are added. The range of the fields is free. The id's meanwhile are fixed and necessary. If additional columns are added they are directly taken from the source and not touched. Resource "soil" needs the following fields:

BulkDensity in g/cm3 (optional, default to 1.4) GravelPercentage in g/g * 100 (optional, default to 0) OrganicPercentage in g/g * 100 (optional, default to 0 One of those is optional and will be calculated from the others. Sum of the three fractions has to be 100! SandPercentage in g/g * 100 SiltPercentage in g/g * 100 ClayPercentage in g/g * 100




public class PedotransferTransformer extends
net.simplace.sim.io.resources.FWSimResourceTransformer {
// Public Constructors
public PedotransferTransformer(FWSimSession aSession, Element
aResourceElement, Integer aOrderNumber);
public PedotransferTransformer(FWSimSession aSession, Integer aOrderNumber);


// Public Instance Methods
public HashMap createVariables(); // Defines
net.simplace.sim.io.FWSimIOAdapter


public FWSimResourceCache getData(FWSimVarMap aVarMap)
throws MissingSimResourceException; // Defines
net.simplace.sim.io.resources.FWSimInputAdapter


standard method from outside
public FWSimResourceCache getData(FWSimVarMap aVarMap, FWSimResourceCache
aResourceCache) throws MissingSimResourceException;

used by test cases
returns delivered new data from transformer
public void updateFields(FWObservable aObservable);
// Defines net.simplace.sim.io.resources.FWSimResourceTransformer




}



Hierarchy: java.lang.Object - net.simplace.sim.io.FWSimIOAdapter (net.simplace.sim.util.FWSimFieldContainer) - net.simplace.sim.io.resources.FWSimInputAdapter - net.simplace.sim.io.resources.FWSimResourceTransformer - PedotransferTransformer