Klasse ArrayResampler
- Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer
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} \]Specifying resampling mode explicitely
By setting cResamplingMode one can specify explicitely which method to use. cIsProportionalValue is then ignored.
- AVG - takes the weighted average (corresponds to cIsProportionalValue true).
- SUM - takes the weighted sum (corresponds to cIsProportionalValue false).
- FIRST - takes the value from the first (upper) matching layer.
- CENTER - takes the value from the source layer matching the midpoint of the target layer.
- LAST - takes the value from the last (lower) matching layer.
- Autor:
- Gunther Krauss, gk@uni-bonn.de
- Siehe auch:
Component Variables
| Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
|---|---|---|---|---|---|---|---|
| constant | cIsProportionalValue | Whether values are relative (proportions) or absolute (amounts) values. | BOOLEAN | - | - | false | |
| constant | cResamplingMode | Specifies the resampling method explicitely - one of 'SUM', 'AVG', 'FIRST', 'CENTER', 'LAST'. If not set (default), then the method 'AVG' resp. 'SUM' is used, depending on cIsProportionalValue | CHAR | - | - | - | |
| input | iOriginalDepths | Bottom depth of each layer of the original dataset. Values must be unique and sorted ascending. | DOUBLEARRAY | - | - | - | |
| input | iOriginalValues | Values of original layers | DOUBLEARRAY | - | - | - | |
| input | iResampledDepths | Bottom depth of each layer of the resampled dataset. Values must be unique and sorted ascending. | DOUBLEARRAY | - | - | - | |
| out | ResampledValues | Resampled values | DOUBLEARRAY | - | - | - |
-
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 -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungprotected net.simplace.sim.model.FWSimComponentclone(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 voidinit()Initializes the fields by getting input and output FWSimVariables from VarMapprotected voidprocess()Process the algorithm and write the results back to VarMapprotected voidVon 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
-
Konstruktordetails
-
ArrayResampler
public ArrayResampler()Empty constructor used by class.forName()
-
-
Methodendetails
-
createVariables
Create the FWSimVariables as interface for this SimComponent- Angegeben von:
createVariablesin Schnittstellenet.simplace.sim.util.FWSimFieldContainer- Angegeben von:
createVariablesin Klassenet.simplace.sim.model.FWSimComponent- Siehe auch:
-
init
protected void init()Initializes the fields by getting input and output FWSimVariables from VarMap- Angegeben von:
initin Klassenet.simplace.sim.model.FWSimComponent- Siehe auch:
-
process
protected void process()Process the algorithm and write the results back to VarMap- Angegeben von:
processin Klassenet.simplace.sim.model.FWSimComponent- Siehe auch:
-
resampleArrays
protected void resampleArrays() -
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:
fillTestVariablesin Klassenet.simplace.sim.model.FWSimComponent- Siehe auch:
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) - Angegeben von:
clonein Klassenet.simplace.sim.model.FWSimComponent- Siehe auch:
-