Klasse ArrayResampler

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.usermodules.amei.Monica_SoilTemp.ArrayResampler
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class ArrayResampler extends net.simplace.sim.model.FWSimComponent
Resamples array values from one resolution to another resolution

The resolutions of original dataset and resampled datasets are determined by the arrays iOriginalDepths ($D_o$) and iResampledDepths ($D_r$) which contains the depths of the layers' bottom. The values have to be unique and sorted ascending. ($D_o(i_1) <span class="invalid-tag">Ungültige Eingabe: "<"</span> D_o(i_2) \text{ when } i_1 <span class="invalid-tag">Ungültige Eingabe: "<"</span> i_2$)

The array of values iOriginalValues ($V_o$) must have same length as the iOriginalDepths array. Values are resampled to the new resolution and output to the array ResampledValues ($V_r$) which has same length as iResampledDepths array.

When we denote the overlap of layer $i$ of original dataset and layer $j$ of resampled dataset by $o(i,j)$ and the thickness of layers is by $t_o(i)$ resp. $t_r(j)$, then:

\[ \begin{eqnarray} t_o(i) Ungültige Eingabe: "&" = Ungültige Eingabe: "&" D_o[i] - D_o[i-1] \\ t_r(j) Ungültige Eingabe: "&" = Ungültige Eingabe: "&" D_r[j] - D_r[j-1] \\ o(i,j) Ungültige Eingabe: "&" = Ungültige Eingabe: "&" max(0, \quad min(D_o[i], D_r[j]) - max(D_o[i-1], D_r[j-i]) \end{eqnarray} \]

If cIsProportional is false (the default), the values from those layers $i$, that overlap with the new layer $j$ are summed up, weighted by the proportion of the overlap to the original layer thickness:

\[ \begin{eqnarray} V_r(j) Ungültige Eingabe: "&"=Ungültige Eingabe: "&" \sum_{i} V_o(i) \frac{o(i,j)}{t_o(i)} \end{eqnarray} \]

If cIsProportional is true, then the values from those layers $i$, that overlap with the new layer $j$ are converted to absolute values by multiplying with the overlap $o(i,j)$, summed up and then divided by the resampled layer thickness $t_r(j)$ to get relative values:

\[ \begin{eqnarray} V_r(j) Ungültige Eingabe: "&"=Ungültige Eingabe: "&" \frac{\sum_{i} V_o(i) o(i,j)}{t_r(j)} \end{eqnarray} \]
Autor:
Gunther Krauss, gk@uni-bonn.de
Siehe auch:
  • ArrayHelper

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
inputiOriginalDepthsBottom depth of each layer of the original dataset. Values must be unique and sorted ascending.DOUBLEARRAY---
inputiOriginalValuesValues of original layersDOUBLEARRAY---
inputiResampledDepthsBottom depth of each layer of the resampled dataset. Values must be unique and sorted ascending.DOUBLEARRAY---
outResampledValuesResampled valuesDOUBLEARRAY---
  • 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
    Resamples layer values from one resolution to another One has to specify, whether the values are amounts or proportions (e.g. water content in mm or volumetric water content in mm^3/mm^3)

    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

    • ArrayResampler

      public ArrayResampler()
      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()
    • 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()
    • resampleArrays

      protected void resampleArrays()
      Resamples layer values from one resolution to another One has to specify, whether the values are amounts or proportions (e.g. water content in mm or volumetric water content in mm^3/mm^3)
      Parameter:
      sourceDepths - Bottom border depth of each layer of source resolution
      targetDepths - Bottom border depth of each layer of target resolution
      sourceValues - Layer values of source resolution
      proportional - Whether values are amounts or proportions
    • 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
      Siehe auch:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)