Class PedotransferTransformer
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
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 Volumetric 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="m^-1" datatype="DOUBLEARRAY"/>
| <res id="VanGenuchtenL" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VanGenuchtenM" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VanGenuchtenN" unit="1" datatype="DOUBLEARRAY"/>
| <res id="SaturatedHydraulicConductivity" unit="m/s" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent0" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent6" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent33" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent200" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent1500" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent3100" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContentResidual" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent6to1500" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent33to1500" unit="1" datatype="DOUBLEARRAY"/>
| <res id="VolumetricWaterContent33Plus1500Half" unit="1" datatype="DOUBLEARRAY"/>
|
| <res id="TopsoilVanGenuchtenAlpha" unit="m^-1" datatype="DOUBLE"/>
| <res id="TopsoilVanGenuchtenL" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVanGenuchtenM" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVanGenuchtenN" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilSaturatedHydraulicConductivity" unit="m/s" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent0" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent6" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent33" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent200" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent1500" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent3100" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContentResidual" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent6to1500" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent33to1500" unit="1" datatype="DOUBLE"/>
| <res id="TopsoilVolumetricWaterContent33Plus1500Half" unit="1" datatype="DOUBLE"/>
|
| <res id="InterflowVanGenuchtenAlpha" unit="m^-1" datatype="DOUBLE"/>
| <res id="InterflowVanGenuchtenL" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVanGenuchtenM" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVanGenuchtenN" unit="1" datatype="DOUBLE"/>
| <res id="InterflowSaturatedHydraulicConductivity" unit="m/s" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent0" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent6" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent33" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent200" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent1500" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent3100" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContentResidual" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent6to1500" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent33to1500" unit="1" datatype="DOUBLE"/>
| <res id="InterflowVolumetricWaterContent33Plus1500Half" unit="1" datatype="DOUBLE"/>
|
| </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="interflowdepth">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
- Author:
- Andreas Enders
Component Variables
| Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
|---|---|---|---|---|---|---|---|
| constant | bulkdensityfieldid | by default 'BulkDensity' | CHAR | - | - | BulkDensity | |
| constant | claypercentagefieldid | by default 'ClayPercentage' | CHAR | - | - | ClayPercentage | |
| constant | depth | by default 'depth' | DOUBLEARRAY | - | - | - | |
| constant | depthfieldid | by default 'depth' | CHAR | - | - | depth | |
| constant | gravelpercentagefieldid | by default 'GravelPercentage' | CHAR | - | - | GravelPercentage | |
| constant | interflowdepth | interflow zone depth in m, default 0.3 | DOUBLE | m | 0.0 | 5.0 | 0.03 |
| constant | organicpercentagefieldid | by default 'OrganicPercentage' | CHAR | - | - | OrganicPercentage | |
| constant | pedotransferfunction | Choose from existing functions: default 'Hypres' | CHAR | - | - | Hypres | |
| constant | sandpercentagefieldid | by default 'SandPercentage' | CHAR | - | - | SandPercentage | |
| constant | siltpercentagefieldid | by default 'SiltPercentage' | CHAR | - | - | SiltPercentage | |
| constant | topsoildepth | topsoil depth in m, default 0.3 | DOUBLE | m | 1.0E-4 | 5.0 | 0.03 |
-
Nested Class Summary
Nested classes/interfaces inherited from class net.simplace.sim.io.FWSimIOAdapter
net.simplace.sim.io.FWSimIOAdapter.FREQUENCE -
Field Summary
Fields inherited from class net.simplace.sim.io.resources.FWSimResourceTransformer
iFieldMap, iIntColumnMap, iLastInputValuesMap, iLastProjectID, iLastUniqueID, iPoolName, iSourceNameFields inherited from class net.simplace.sim.io.resources.FWSimInputAdapter
iJexlScript, iShouldCacheToDBFields inherited from class net.simplace.sim.io.FWSimIOAdapter
iArrayMode, iFieldcount, iFrequence, iHeaderVariables, iInterface, iJexlRule, iKeyMap, iName, iOrderNumber, iProcessTime, iResourceElement, iSession, iSourceKey -
Constructor Summary
ConstructorsConstructorDescriptionused for ClassForNamePedotransferTransformer(net.simplace.sim.FWSimSession aSession, Integer aOrderNumber) PedotransferTransformer(net.simplace.sim.FWSimSession aSession, org.jdom2.Element aResourceElement, Integer aOrderNumber) -
Method Summary
Modifier and TypeMethodDescriptionnet.simplace.sim.io.resources.FWSimResourceCachegetData(net.simplace.sim.util.FWSimVarMap aVarMap) standard method from outsidenet.simplace.sim.io.resources.FWSimResourceCachegetData(net.simplace.sim.util.FWSimVarMap aVarMap, net.simplace.sim.io.resources.FWSimResourceCache aResourceCache) used by test casesvoidupdateFields(net.simplace.core.FWObservable aObservable) Methods inherited from class net.simplace.sim.io.resources.FWSimResourceTransformer
addVariable, createFormFields, createResourceTransformer, createResourceTransformer, createResourceTransformer, createSimTransformer, fillVarMap, getCreateFormXML, getEditFormXML, getSourceResourceCache, getVariable, isUpdated, toDocXML, toXMLMethods inherited from class net.simplace.sim.io.resources.FWSimInputAdapter
getContentType, getInputVariables, getJexlScript, getOutputVariables, getVarMap, isTransformer, shouldCacheToDB, toHTMLTablestringMethods inherited from class net.simplace.sim.io.FWSimIOAdapter
addProcessTime, checkCondition, createFormFields, finalize, getFieldMap, getFrequence, getHeaderVariables, getHeaderXML, getInterface, getJexlRule, getKeyMap, getName, getOrderNumber, isArrayMode, isConditionCheck, removeVariable, setInterface, setOrderNumber, toString, writeHeaderList
-
Constructor Details
-
PedotransferTransformer
public PedotransferTransformer(net.simplace.sim.FWSimSession aSession, org.jdom2.Element aResourceElement, Integer aOrderNumber) - Parameters:
aSession-aResourceElement-aOrderNumber-
-
PedotransferTransformer
- Parameters:
aSession-aOrderNumber-
-
PedotransferTransformer
public PedotransferTransformer()used for ClassForName
-
-
Method Details
-
createVariables
- Specified by:
createVariablesin interfacenet.simplace.sim.util.FWSimFieldContainer- Overrides:
createVariablesin classnet.simplace.sim.io.FWSimIOAdapter
-
getData
public net.simplace.sim.io.resources.FWSimResourceCache getData(net.simplace.sim.util.FWSimVarMap aVarMap) throws net.simplace.sim.exceptions.MissingSimResourceException standard method from outside- Specified by:
getDatain classnet.simplace.sim.io.resources.FWSimInputAdapter- Throws:
net.simplace.sim.exceptions.MissingSimResourceException- See Also:
-
getData
public net.simplace.sim.io.resources.FWSimResourceCache getData(net.simplace.sim.util.FWSimVarMap aVarMap, net.simplace.sim.io.resources.FWSimResourceCache aResourceCache) throws net.simplace.sim.exceptions.MissingSimResourceException used by test cases- Parameters:
aVarMap- variable mapaResourceCache- Cached resources (soil data)- Returns:
- delivered new data from transformer
- Throws:
net.simplace.sim.exceptions.MissingSimResourceException
-
updateFields
public void updateFields(net.simplace.core.FWObservable aObservable) - Specified by:
updateFieldsin classnet.simplace.sim.io.resources.FWSimResourceTransformer
-