From 38aab10c66ca4a20e7c4697ff3a9c62e243a92ad Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Tue, 16 Apr 2024 14:45:35 +0100 Subject: [PATCH 01/21] Change made --- instat/dlgTransformClimatic.vb | 59 ++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 17 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index d4b2ae83e7f..80cd226898b 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -18,7 +18,7 @@ Imports instat.Translations Public Class dlgTransformClimatic Private bFirstload As Boolean = True Private bReset As Boolean = True - Private clsRTransform, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction + Private clsRTransform, clsWBEvaporationMinFunction, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction Private clsTransformCheck As New RFunction 'dummy @@ -351,6 +351,7 @@ Public Class dlgTransformClimatic Private Sub SetDefaults() clsRTransform = New RFunction + clsWBEvaporationMinFunction = New RFunction clsOverallTransformFunction = New RFunction clsTransformManipulationsFunc = New RFunction clsRTransformCountSpellSub = New RFunction @@ -485,22 +486,23 @@ Public Class dlgTransformClimatic ' Water Balance clsRWaterBalanceFunction.bToScriptAsRString = True - clsRWaterBalanceFunction.SetRCommand("Reduce") - clsRWaterBalanceFunction.AddParameter("x", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0, bIncludeArgumentName:=False) - clsPMinFunctionMax.SetRCommand("function(x, y) pmin") + clsRWaterBalanceFunction.SetPackageName("purrr") + clsRWaterBalanceFunction.SetRCommand("accumulate") + clsRWaterBalanceFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + clsPMinFunctionMax.SetRCommand("~ pmin") clsPMinFunctionMax.AddParameter("pmax", clsRFunctionParameter:=clsPMaxFunctionMax, iPosition:=0, bIncludeArgumentName:=False) clsPMaxFunctionMax.SetRCommand("pmax") clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) clsPMaxOperatorMax.SetOperation("-") - clsPMaxOperatorMax.AddParameter("first", "x + y", iPosition:=0) + clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) clsPMaxOperatorMax.AddParameter("evaporation.value", 5, iPosition:=1) - clsPMaxFunctionMax.AddParameter("0", 0, iPosition:=1, bIncludeArgumentName:=False) + clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) clsPMinFunctionMax.AddParameter("capacity", 60, iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction.AddParameter("replace_na", iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) clsWBOperator.SetOperation("-") - clsWBOperator.AddParameter("left", "x + y", iPosition:=0) + clsWBOperator.AddParameter("left", "..1 + ..2", iPosition:=0) clsWBOperator.AddParameter("right", clsRFunctionParameter:=clsWBEvaporation, iPosition:=1) clsWBOperator.bSpaceAroundOperation = True clsWBOperator.bBrackets = False @@ -508,11 +510,11 @@ Public Class dlgTransformClimatic clsReduceOpEvapValue.SetOperation("-") clsWBEvaporation.SetRCommand("WB_evaporation") - clsWBEvaporation.AddParameter("water_balance", "x", iPosition:=0, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("WB_evap_value", 0.5, iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("evaporation_value", 5, iPosition:=3, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("rain", "rain", iPosition:=4, bIncludeArgumentName:=False) + 'clsWBEvaporation.AddParameter("evaporation_value", 5, iPosition:=3, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) clsTailFunction.SetPackageName("utils") clsTailFunction.SetRCommand("tail") @@ -621,6 +623,15 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("save", 2, iPosition:=6) clsRTransform.SetAssignTo("transform_calculation") + 'clsRTransformFunction.SetRCommand("instat_calculation$new") + 'clsRTransformFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + 'clsRTransformFunction.AddParameter("function_exp", clsRFunctionParameter:=clsRCountFunction, iPosition:=1) ' changes depending on the rdo + 'clsRTransformFunction.AddParameter("result_name", Chr(34) & "count" & Chr(34), iPosition:=2) + 'clsRTransformFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsRTransformCountSpellSub, iPosition:=4) + 'clsRTransformFunction.AddParameter("manipulations", clsRFunctionParameter:=clsTransformManipulationsFunc, iPosition:=5) + 'clsRTransformFunction.AddParameter("save", 2, iPosition:=6) + 'clsRTransformFunction.SetAssignTo("transform_calculation") + clsTransformCheck = clsRTransform clsOverallTransformFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") @@ -1095,28 +1106,42 @@ Public Class dlgTransformClimatic AddCalculate() End Sub Private Sub ReduceWaterBalance() + 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f= ~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 100, 5, ..2), 0)), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) + ' wb_min <- instat_calculation$new(type="calculation", function_exp="Reduce(f=function(x, y) pmin(pmax(x + y, 0), 100), x=tail(x=rain_min - 5, n=-1), init=0, accumulate=TRUE)", result_name="wb_min", sub_calculations=list(rain_min)) + + 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f= ~ pmin(pmax(..1 + ..2, 0), 100), .x=tail(x=rain_min - 5, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) + 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="Reduce(function(x, y) pmin(pmax(x + y - 5, 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain"), adjacent_column="rain") + 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2 - 5, 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, adjacent_column="rain", calculated_from=list("dodoma"="rain")) + 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 60, ..2), , 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, adjacent_column="rain", calculated_from=list("dodoma"="rain")) + If rdoWaterBalance.Checked Then If rdoEvapValue.Checked Then clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") If ucrChkWB.Checked Then - clsPMaxFunctionMax.AddParameter("0", 0, iPosition:=1, bIncludeArgumentName:=False) - clsPMaxOperatorMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) clsPMaxOperatorMax.RemoveParameterByName("first") clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") - clsRWaterBalanceFunction.AddParameter("replace_na", clsRFunctionParameter:=clsTailFunction, iPosition:=2, bIncludeArgumentName:=False) - clsRWaterBalanceFunction.AddParameter("init", "0", iPosition:=3, bIncludeArgumentName:=False) + clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else clsPMaxOperatorMax.AddParameter("evaporation.value", 5, iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.RemoveParameterByName("wb") End If - ElseIf rdoEvapVariable.Checked Then + 'wb_min <- instat_calculation$new(type="calculation", function_exp="Reduce(f=function(x, y) pmin(pmax(x + y, 0), 100), x=tail(x=rain_min - ifelse(test=is.na(x=month_abbr), yes=5, no=month_abbr), n=-1), init=0, accumulate=TRUE)", result_name="wb_min", sub_calculations=list(rain_min)) + 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate2(.f= ~ pmin(pmax(..1 + ..2, 0), 100), .y=tail(x=tmax, n=-1), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) + 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate2(.f= ~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 100, ..3, ..2), 0)), .y=tail(x=tmax, n=-1), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) + + 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="Reduce(function(x, y) pmin(pmax(x + y, 0), 60), rain - tmax, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain", "dodoma"="tmax"), adjacent_column="rain") + 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2, 0), 60), rain - tmax, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain", "dodoma"="tmax"), adjacent_column="rain") ucrReceiverEvap.SetMeAsReceiver() - clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") - clsRWaterBalanceFunction.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue, iPosition:=1, bIncludeArgumentName:=False) clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") + clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") + If ucrChkWB.Checked Then + + Else + clsRWaterBalanceFunction.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue, iPosition:=1, bIncludeArgumentName:=False) + End If End If End If End Sub From 8c6877bd0cae904cc9fab4fa9fe7479f1e6a5906 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 17 Apr 2024 16:11:01 +0100 Subject: [PATCH 02/21] Change made --- instat/dlgTransformClimatic.vb | 176 +++++++++++++++++++++------------ 1 file changed, 112 insertions(+), 64 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 80cd226898b..2596b72c6f5 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -18,7 +18,7 @@ Imports instat.Translations Public Class dlgTransformClimatic Private bFirstload As Boolean = True Private bReset As Boolean = True - Private clsRTransform, clsWBEvaporationMinFunction, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction + Private clsRTransform, clsAsNumericFunction, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction Private clsTransformCheck As New RFunction 'dummy @@ -35,8 +35,8 @@ Public Class dlgTransformClimatic Private clsGreaterThanOperator, clsLessThanOperator As New ROperator ' Water Balance - Private clsPMinFunctionMax, clsPMaxFunctionMax, clsRWaterBalanceFunction, clsTailFunction, clsWBEvaporation As New RFunction - Private clsPMaxOperatorMax, clsReduceOpEvapValue, clsWBOperator As New ROperator + Private clsPMinFunctionMax, clsPMaxFunctionMax, clsRWaterBalanceFunction, clsRWaterBalanceFunction2, clsRWaterBalanceFunction1, clsTailFunction, clsWBEvaporation As New RFunction + Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator 'Degree Private clsDiurnalRangeOperator, clsTMeanAddOperator, clsTMeanDivideOperator As New ROperator @@ -89,20 +89,18 @@ Public Class dlgTransformClimatic ucrPnlTransform.AddRadioButton(rdoWaterBalance) ucrPnlTransform.AddRadioButton(rdoDegree) - ucrPnlTransform.AddParameterValueFunctionNamesCondition(rdoCumulative, "function_exp", {"cumsum", "cummin", "cummax"}) - ucrPnlTransform.AddParameterValueFunctionNamesCondition(rdoCount, "function_exp", "rollapply") - ucrPnlTransform.AddParameterPresentCondition(rdoCount, "sub_calculations", True) - ucrPnlTransform.AddParameterValueFunctionNamesCondition(rdoMoving, "function_exp", {"rollapply", "movingFun"}) - ucrPnlTransform.AddParameterPresentCondition(rdoMoving, "sub_calculations", False) - ucrPnlTransform.AddParameterIsStringCondition(rdoSpell, "function_exp") - ucrPnlTransform.AddFunctionNamesCondition(rdoMultSpells, "rollapply") - ucrPnlTransform.AddParameterValueFunctionNamesCondition(rdoWaterBalance, "function_exp", "Reduce") - ucrPnlTransform.AddParameterIsROperatorCondition(rdoDegree, "function_exp") + ucrPnlTransform.AddParameterValuesCondition(rdoCumulative, "checked", "cumsum") + ucrPnlTransform.AddParameterValuesCondition(rdoCount, "checked", "rollapply") + ucrPnlTransform.AddParameterValuesCondition(rdoMoving, "checked", "moving") + ucrPnlTransform.AddParameterValuesCondition(rdoSpell, "checked", "spell") + ucrPnlTransform.AddParameterValuesCondition(rdoMultSpells, "checked", "spells") + ucrPnlTransform.AddParameterValuesCondition(rdoWaterBalance, "checked", "Reduce") + ucrPnlTransform.AddParameterValuesCondition(rdoDegree, "checked", "degree") ucrPnlEvap.AddRadioButton(rdoEvapValue) ucrPnlEvap.AddRadioButton(rdoEvapVariable) - ucrPnlEvap.AddParameterPresentCondition(rdoEvapValue, "evaporation.value") - ucrPnlEvap.AddParameterPresentCondition(rdoEvapVariable, "evaporation.value", False) + ucrPnlEvap.AddParameterValuesCondition(rdoEvapValue, "evaporation.value", "value") + ucrPnlEvap.AddParameterValuesCondition(rdoEvapVariable, "evaporation.value", "variable") ucrPnlDegree.AddRadioButton(rdoTMean) ucrPnlDegree.AddRadioButton(rdoHeatingDegreeDays) @@ -110,11 +108,11 @@ Public Class dlgTransformClimatic ucrPnlDegree.AddRadioButton(rdoDiurnalRange) ucrPnlDegree.AddRadioButton(rdoModifiedGDD) - ucrPnlDegree.AddParameterValuesCondition(rdoModifiedGDD, "checked", "mgdd") - ucrPnlDegree.AddParameterValuesCondition(rdoDiurnalRange, "checked", "diurnal") - ucrPnlDegree.AddParameterValuesCondition(rdoTMean, "checked", "mean") - ucrPnlDegree.AddParameterValuesCondition(rdoHeatingDegreeDays, "checked", "hdd") - ucrPnlDegree.AddParameterValuesCondition(rdoGrowingDegreeDays, "checked", "gdd") + ucrPnlDegree.AddParameterValuesCondition(rdoModifiedGDD, "check", "mgdd") + ucrPnlDegree.AddParameterValuesCondition(rdoDiurnalRange, "check", "diurnal") + ucrPnlDegree.AddParameterValuesCondition(rdoTMean, "check", "mean") + ucrPnlDegree.AddParameterValuesCondition(rdoHeatingDegreeDays, "check", "hdd") + ucrPnlDegree.AddParameterValuesCondition(rdoGrowingDegreeDays, "check", "gdd") ttRdoRange.SetToolTip(rdoDiurnalRange, "Diurnal Range is the difference between Tmax And Tmin, (Tmax - Tmin)") ttRdoTMean.SetToolTip(rdoTMean, "Tmean is the average daily temperature, (Tmax + Tmin)/2") @@ -226,11 +224,11 @@ Public Class dlgTransformClimatic ucrChkCircular.SetText("Circular") ucrChkCircular.SetLinkedDisplayControl(lblPosition) - ucrChkWB.SetParameter(New RParameter("WB_evap")) - ucrChkWB.SetValuesCheckedAndUnchecked("TRUE", "FALSE") + ucrChkWB.AddParameterPresentCondition(True, "WB_evap", True) + ucrChkWB.AddParameterPresentCondition(False, "WB_evap", False) ucrChkWB.SetText("Reducing") - ucrNudWB.SetParameter(New RParameter("WB_evap_value", 2)) + ucrNudWB.SetParameter(New RParameter("WB_evap_value", 2, False)) ucrNudWB.SetMinMax(0, 1) ucrNudWB.Increment = 0.01 ucrNudWB.DecimalPlaces = 2 @@ -255,6 +253,7 @@ Public Class dlgTransformClimatic ucrInputSpellLower.SetItems(dctInputLowerSpell) ucrInputSpellLower.AddQuotesIfUnrecognised = False ucrInputSpellLower.SetLinkedDisplayControl(lblCondition) + ucrInputSpellLower.SetRDefault("0.85") ucrInputSpellUpper.SetParameter(New RParameter("max", 1)) ucrInputSpellUpper.SetValidationTypeAsNumeric() @@ -275,6 +274,7 @@ Public Class dlgTransformClimatic ucrInputEvaporation.SetParameter(New RParameter("evaporation.value", 1, False)) ucrInputEvaporation.SetValidationTypeAsNumeric() ucrInputEvaporation.AddQuotesIfUnrecognised = False + ucrInputEvaporation.SetRDefault("5") 'Degree ucrChkUseMaxMin.SetText("Use Max and Min") @@ -314,7 +314,7 @@ Public Class dlgTransformClimatic 'makes the ucrSave control to position new column after selected column ucrSaveColumn.setLinkedReceiver(ucrReceiverData) - ucrPnlEvap.AddToLinkedControls(ucrInputEvaporation, {rdoEvapValue}, bNewLinkedHideIfParameterMissing:=True) + ucrPnlEvap.AddToLinkedControls(ucrInputEvaporation, {rdoEvapValue}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlEvap.AddToLinkedControls(ucrReceiverEvap, {rdoEvapVariable}, bNewLinkedHideIfParameterMissing:=True) ucrPnlEvap.SetLinkedDisplayControl(lblWBEvaporation) @@ -333,7 +333,7 @@ Public Class dlgTransformClimatic ucrPnlTransform.AddToLinkedControls(ucrChkCircular, {rdoMoving}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls(ucrNudMultSpells, {rdoMultSpells}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=21) ucrPnlTransform.AddToLinkedControls(ucrPnlEvap, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=60) + ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls(ucrChkGroupByYear, {rdoCount, rdoMoving, rdoSpell, rdoMultSpells, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrReceiverYear, ucrReceiverData, ucrChkOptions}, {rdoCumulative, rdoCount, rdoMoving, rdoMultSpells, rdoSpell, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrChkUseMaxMin, ucrPnlDegree}, {rdoDegree}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) @@ -342,7 +342,7 @@ Public Class dlgTransformClimatic ucrChkCircular.AddToLinkedControls(ucrInputPosition, {False}, bNewLinkedHideIfParameterMissing:=True) ucrInputCondition.AddToLinkedControls(ucrInputSpellUpper, {"<=", "Between", "Outer"}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=0) - ucrInputCondition.AddToLinkedControls(ucrInputSpellLower, {"Between", "Outer", ">="}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=0.85) + ucrInputCondition.AddToLinkedControls(ucrInputSpellLower, {"Between", "Outer", ">="}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrReceiverYear.SetLinkedDisplayControl(lblYear) 'Temporary fix: ucrChkOptions is only used in linking ucrChkOptions.SetLinkedDisplayControl(grpTransform) @@ -351,7 +351,7 @@ Public Class dlgTransformClimatic Private Sub SetDefaults() clsRTransform = New RFunction - clsWBEvaporationMinFunction = New RFunction + clsAsNumericFunction = New RFunction clsOverallTransformFunction = New RFunction clsTransformManipulationsFunc = New RFunction clsRTransformCountSpellSub = New RFunction @@ -367,6 +367,8 @@ Public Class dlgTransformClimatic clsReplaceNAasElement = New RFunction clsRCountFunction = New RFunction clsRWaterBalanceFunction = New RFunction + clsRWaterBalanceFunction1 = New RFunction + clsRWaterBalanceFunction2 = New RFunction clsWBEvaporation = New RFunction clsTailFunction = New RFunction clsRRaindayMatch = New RFunction @@ -400,12 +402,16 @@ Public Class dlgTransformClimatic clsWBOperator = New ROperator clsGroupByYear.Clear() clsReduceOpEvapValue.Clear() + clsReduceOpEvapValue1.Clear() + clsReduceOpEvapValue2.Clear() clsGreaterThanOperator.Clear() clsLessThanOperator.Clear() ucrSelectorTransform.Reset() ucrReceiverData.SetMeAsReceiver() + ucrNudWBCapacity.SetText("60") + ' Count and Spells: Rainday clsRRainday.SetRCommand("instat_calculation$new") clsRRainday.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -485,6 +491,8 @@ Public Class dlgTransformClimatic clsRasterFuction.bToScriptAsRString = True ' Water Balance + clsAsNumericFunction.SetRCommand("as.numeric") + clsRWaterBalanceFunction.bToScriptAsRString = True clsRWaterBalanceFunction.SetPackageName("purrr") clsRWaterBalanceFunction.SetRCommand("accumulate") @@ -492,15 +500,24 @@ Public Class dlgTransformClimatic clsPMinFunctionMax.SetRCommand("~ pmin") clsPMinFunctionMax.AddParameter("pmax", clsRFunctionParameter:=clsPMaxFunctionMax, iPosition:=0, bIncludeArgumentName:=False) clsPMaxFunctionMax.SetRCommand("pmax") - clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) clsPMaxOperatorMax.SetOperation("-") - clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - clsPMaxOperatorMax.AddParameter("evaporation.value", 5, iPosition:=1) clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) clsPMinFunctionMax.AddParameter("capacity", 60, iPosition:=1, bIncludeArgumentName:=False) - clsRWaterBalanceFunction.AddParameter("replace_na", iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) + clsRWaterBalanceFunction1.bToScriptAsRString = True + clsRWaterBalanceFunction1.SetPackageName("purrr") + clsRWaterBalanceFunction1.SetRCommand("accumulate2") + clsRWaterBalanceFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + clsRWaterBalanceFunction1.AddParameter(".y", clsRFunctionParameter:=clsTailFunction, iPosition:=1) + clsRWaterBalanceFunction1.AddParameter("accumulate", "TRUE", iPosition:=2) + + clsRWaterBalanceFunction2.bToScriptAsRString = True + clsRWaterBalanceFunction2.SetPackageName("purrr") + clsRWaterBalanceFunction2.SetRCommand("accumulate") + clsRWaterBalanceFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + clsRWaterBalanceFunction2.AddParameter("accumulate", "TRUE", iPosition:=2) + clsWBOperator.SetOperation("-") clsWBOperator.AddParameter("left", "..1 + ..2", iPosition:=0) clsWBOperator.AddParameter("right", clsRFunctionParameter:=clsWBEvaporation, iPosition:=1) @@ -509,17 +526,18 @@ Public Class dlgTransformClimatic clsReduceOpEvapValue.SetOperation("-") + clsReduceOpEvapValue1.SetOperation("-") + + clsReduceOpEvapValue2.SetOperation("-") + clsWBEvaporation.SetRCommand("WB_evaporation") clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("WB_evap_value", 0.5, iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) - 'clsWBEvaporation.AddParameter("evaporation_value", 5, iPosition:=3, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) - clsTailFunction.SetPackageName("utils") clsTailFunction.SetRCommand("tail") - clsTailFunction.AddParameter("x", "rain", iPosition:=0) clsTailFunction.AddParameter("n", "-1", iPosition:=1) + ' Degree clsDiurnalRangeOperator.SetOperation("-") clsDiurnalRangeOperator.bToScriptAsRString = True @@ -595,7 +613,9 @@ Public Class dlgTransformClimatic clsModifiedGDDOperator.AddParameter("y", clsRFunctionParameter:=clsLogicalMgddRFunction, iPosition:=1, bIncludeArgumentName:=False) clsModifiedGDDOperator.bToScriptAsRString = True - clsDummyFunction.AddParameter("checked", "diurnal", iPosition:=0) + clsDummyFunction.AddParameter("check", "diurnal", iPosition:=0) + clsDummyFunction.AddParameter("evaporation.value", "value", iPosition:=1) + clsDummyFunction.AddParameter("checked", "rollapply", iPosition:=2) ' Group options clsGroupByYear.SetRCommand("instat_calculation$new") @@ -654,6 +674,10 @@ Public Class dlgTransformClimatic ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeSum, New RParameter("x", 0, False), iAdditionalPairNo:=9) ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMaximum, New RParameter("x", 0, False), iAdditionalPairNo:=10) ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=11) + ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction1, New RParameter("replace_na", 1, False), iAdditionalPairNo:=12) + ucrReceiverData.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("left", 0, False), iAdditionalPairNo:=13) + ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction2, New RParameter("replace_na", 1, False), iAdditionalPairNo:=14) + ucrReceiverData.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("left", 0, False), iAdditionalPairNo:=15) ucrNudSumOver.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrInputSum.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("fun", 2), iAdditionalPairNo:=1) ucrInputSpellUpper.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("max", 1), iAdditionalPairNo:=1) @@ -670,8 +694,10 @@ Public Class dlgTransformClimatic ucrNudMgdd.AddAdditionalCodeParameterPair(clsModifiedLogicOperator, New RParameter("baseline", ucrNudMgdd.GetText, 1), iAdditionalPairNo:=1) ucrReceiverTMax.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmax", 0), iAdditionalPairNo:=2) ucrReceiverTMin.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmin", 1), iAdditionalPairNo:=2) - - ucrPnlTransform.SetRCode(clsTransformCheck, bReset) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsTailFunction, New RParameter("x", 1), iAdditionalPairNo:=1) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=3) + ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsWBEvaporation, New RParameter("capacity", 1, False), iAdditionalPairNo:=1) ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) @@ -690,10 +716,8 @@ Public Class dlgTransformClimatic ucrInputSpellUpper.SetRCode(clsRRaindayUpperOperator, bReset) ' Water Balance - ucrPnlEvap.SetRCode(clsPMaxOperatorMax, bReset) - ucrReceiverEvap.SetRCode(clsReduceOpEvapValue, bReset) + ucrReceiverEvap.SetRCode(clsAsNumericFunction, bReset) ucrNudWBCapacity.SetRCode(clsPMinFunctionMax, bReset) - ucrNudWB.SetRCode(clsWBOperator, bReset) 'Degree ucrReceiverTMin.SetRCode(clsDiurnalRangeOperator, bReset) @@ -703,11 +727,16 @@ Public Class dlgTransformClimatic ucrNudGDD.SetRCode(clsGrowingDegreDiffOperator, bReset) ucrNudLimit.SetRCode(clsModifiedMinfunction, bReset) ucrNudMgdd.SetRCode(clsModifiedDiffOperator, bReset) - ucrPnlDegree.SetRCode(clsDummyFunction, bReset) ucrSaveColumn.SetRCode(clsRTransform, bReset) If bReset Then + ucrChkGroupByYear.SetRCode(clsTransformManipulationsFunc, bReset) ucrInputEvaporation.SetRCode(clsPMaxOperatorMax, bReset) + ucrPnlEvap.SetRCode(clsDummyFunction, bReset) + ucrNudWB.SetRCode(clsWBEvaporation, bReset) + ucrChkWB.SetRCode(clsWBEvaporation, bReset) + ucrPnlTransform.SetRCode(clsDummyFunction, bReset) + ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If End Sub @@ -780,7 +809,7 @@ Public Class dlgTransformClimatic End Select End Sub - Private Sub ucrPnlTransform_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlTransform.ControlValueChanged, ucrPnlDegree.ControlValueChanged + Private Sub ucrPnlTransform_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlTransform.ControlValueChanged, ucrPnlDegree.ControlValueChanged, ucrPnlEvap.ControlValueChanged If rdoCumulative.Checked Then CumulativeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -808,13 +837,12 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform + ReduceWaterBalance() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform End If - ReduceWaterBalance() - 'Evaporation() AddCalculate() SetAssignName() GroupByStation() @@ -822,6 +850,7 @@ Public Class dlgTransformClimatic SetAsReceiver() ChangeFunctions() AddRemoveMeanOperator() + ShowGroups() End Sub Private Sub DegreeFunctions() @@ -957,11 +986,13 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged GroupByStation() + ReduceWaterBalance() End Sub Private Sub ucrReceiverYear_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverYear.ControlValueChanged GroupByYear() CheckGroupByYearEnabled() + ReduceWaterBalance() End Sub Private Sub ucrInputSum_ControlValueChanged(ucrchangedControl As ucrCore) Handles ucrInputSum.ControlValueChanged @@ -971,6 +1002,7 @@ Public Class dlgTransformClimatic Private Sub ucrChkGroupByYear_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkGroupByYear.ControlValueChanged GroupByYear() CheckGroupByYearEnabled() + ReduceWaterBalance() End Sub Private Sub ucrInputEvaporation_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlContentsChanged, ucrPnlEvap.ControlContentsChanged @@ -1105,42 +1137,50 @@ Public Class dlgTransformClimatic AddRemoveMeanOperator() AddCalculate() End Sub - Private Sub ReduceWaterBalance() - 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f= ~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 100, 5, ..2), 0)), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) - ' wb_min <- instat_calculation$new(type="calculation", function_exp="Reduce(f=function(x, y) pmin(pmax(x + y, 0), 100), x=tail(x=rain_min - 5, n=-1), init=0, accumulate=TRUE)", result_name="wb_min", sub_calculations=list(rain_min)) - 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f= ~ pmin(pmax(..1 + ..2, 0), 100), .x=tail(x=rain_min - 5, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) - 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="Reduce(function(x, y) pmin(pmax(x + y - 5, 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain"), adjacent_column="rain") - 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2 - 5, 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, adjacent_column="rain", calculated_from=list("dodoma"="rain")) - 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 60, ..2), , 0), 60), rain, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, adjacent_column="rain", calculated_from=list("dodoma"="rain")) + Private Sub ShowGroups() + If rdoDegree.Checked Then + grpTransform.Hide() + grpDegree.Show() + Else + grpDegree.Hide() + grpTransform.Show() + End If + End Sub + Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then + clsPMaxFunctionMax.RemoveParameterByName("wb") + clsPMaxOperatorMax.RemoveParameterByName("first") + clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") + clsPMaxFunctionMax.RemoveParameterByName("calculation") + clsWBEvaporation.RemoveParameterByName("evaporation.value") If rdoEvapValue.Checked Then clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") If ucrChkWB.Checked Then - clsPMaxOperatorMax.RemoveParameterByName("first") - clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") + clsWBEvaporation.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else - clsPMaxOperatorMax.AddParameter("evaporation.value", 5, iPosition:=1, bIncludeArgumentName:=False) - clsPMaxFunctionMax.RemoveParameterByName("wb") + clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) + clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) End If ElseIf rdoEvapVariable.Checked Then - 'wb_min <- instat_calculation$new(type="calculation", function_exp="Reduce(f=function(x, y) pmin(pmax(x + y, 0), 100), x=tail(x=rain_min - ifelse(test=is.na(x=month_abbr), yes=5, no=month_abbr), n=-1), init=0, accumulate=TRUE)", result_name="wb_min", sub_calculations=list(rain_min)) - 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate2(.f= ~ pmin(pmax(..1 + ..2, 0), 100), .y=tail(x=tmax, n=-1), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) - 'wb_min <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate2(.f= ~ pmin(pmax(..1 + ..2 - WB_evaporation(..1, 0.5, 100, ..3, ..2), 0)), .y=tail(x=tmax, n=-1), .x=tail(x=rain_min, n=-1), .init=0)", result_name="wb_min", sub_calculations=list(rain_min)) - - 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="Reduce(function(x, y) pmin(pmax(x + y, 0), 60), rain - tmax, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain", "dodoma"="tmax"), adjacent_column="rain") - 'transform_calculation <- instat_calculation$new(type="calculation", function_exp="purrr::accumulate(.f=~ pmin(pmax(..1 + ..2, 0), 60), rain - tmax, accumulate=TRUE)", result_name="water", manipulations=list(), save=2, before=FALSE, calculated_from=list("dodoma"="rain", "dodoma"="tmax"), adjacent_column="rain") ucrReceiverEvap.SetMeAsReceiver() - clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") If ucrChkWB.Checked Then - + clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) + clsWBEvaporation.AddParameter("value", "..3", iPosition:=4, bIncludeArgumentName:=False) + clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) + clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) Else - clsRWaterBalanceFunction.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue, iPosition:=1, bIncludeArgumentName:=False) + clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) + clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) + clsReduceOpEvapValue2.AddParameter("x", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) + clsRWaterBalanceFunction2.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue2, iPosition:=1, bIncludeArgumentName:=False) + clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) End If End If End If @@ -1153,4 +1193,12 @@ Public Class dlgTransformClimatic Private Sub rdoEvapValue_CheckedChanged(sender As Object, e As EventArgs) Handles rdoEvapValue.CheckedChanged, rdoEvapVariable.CheckedChanged ReduceWaterBalance() End Sub + + Private Sub ucrInputEvaporation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlValueChanged, ucrReceiverEvap.ControlValueChanged + ReduceWaterBalance() + End Sub + + Private Sub ucrReceiverDate_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDate.ControlValueChanged + ReduceWaterBalance() + End Sub End Class \ No newline at end of file From 6c3aa0cd98f9d34024a8a320ecc9472055b731b9 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Thu, 18 Apr 2024 12:26:17 +0100 Subject: [PATCH 03/21] Change made --- instat/dlgTransformClimatic.resx | 2 +- instat/dlgTransformClimatic.vb | 27 +++++++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/instat/dlgTransformClimatic.resx b/instat/dlgTransformClimatic.resx index 7df82c09ec8..8cb81675a04 100644 --- a/instat/dlgTransformClimatic.resx +++ b/instat/dlgTransformClimatic.resx @@ -2248,7 +2248,7 @@ 28 - 9, 254 + 9, 249 428, 151 diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 2596b72c6f5..04b6aa74b55 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -643,15 +643,6 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("save", 2, iPosition:=6) clsRTransform.SetAssignTo("transform_calculation") - 'clsRTransformFunction.SetRCommand("instat_calculation$new") - 'clsRTransformFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) - 'clsRTransformFunction.AddParameter("function_exp", clsRFunctionParameter:=clsRCountFunction, iPosition:=1) ' changes depending on the rdo - 'clsRTransformFunction.AddParameter("result_name", Chr(34) & "count" & Chr(34), iPosition:=2) - 'clsRTransformFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsRTransformCountSpellSub, iPosition:=4) - 'clsRTransformFunction.AddParameter("manipulations", clsRFunctionParameter:=clsTransformManipulationsFunc, iPosition:=5) - 'clsRTransformFunction.AddParameter("save", 2, iPosition:=6) - 'clsRTransformFunction.SetAssignTo("transform_calculation") - clsTransformCheck = clsRTransform clsOverallTransformFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") @@ -838,6 +829,7 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform ReduceWaterBalance() + AutoFill() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -973,6 +965,7 @@ Public Class dlgTransformClimatic ReduceWaterBalance() ChangeFunctions() AddCalculate() + AutoFill() End Sub Private Sub ucrInputSpellLower_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputSpellUpper.ControlValueChanged, ucrInputCondition.ControlValueChanged @@ -982,6 +975,7 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() + AutoFill() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -1148,6 +1142,19 @@ Public Class dlgTransformClimatic End If End Sub + Private Sub AutoFill() + If rdoWaterBalance.Checked Then + Dim strDataFrame As String + Dim strRainCol As String + + strDataFrame = ucrSelectorTransform.ucrAvailableDataFrames.cboAvailableDataFrames.Text + strRainCol = frmMain.clsRLink.GetClimaticColumnOfType(strDataFrame, "rain_label") + If strRainCol <> "" Then + ucrReceiverData.Add(strRainCol, strDataFrame) + End If + End If + End Sub + Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then clsPMaxFunctionMax.RemoveParameterByName("wb") @@ -1186,7 +1193,7 @@ Public Class dlgTransformClimatic End If End Sub - Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged + Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged, ucrNudWB.ControlValueChanged ReduceWaterBalance() End Sub From c73c6c710b733702ee8e70dec0608539514d9ff2 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Thu, 18 Apr 2024 16:04:00 +0100 Subject: [PATCH 04/21] Revert "Change made" This reverts commit 6c3aa0cd98f9d34024a8a320ecc9472055b731b9. --- instat/dlgTransformClimatic.resx | 2 +- instat/dlgTransformClimatic.vb | 27 ++++++++++----------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/instat/dlgTransformClimatic.resx b/instat/dlgTransformClimatic.resx index 8cb81675a04..7df82c09ec8 100644 --- a/instat/dlgTransformClimatic.resx +++ b/instat/dlgTransformClimatic.resx @@ -2248,7 +2248,7 @@ 28 - 9, 249 + 9, 254 428, 151 diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 04b6aa74b55..2596b72c6f5 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -643,6 +643,15 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("save", 2, iPosition:=6) clsRTransform.SetAssignTo("transform_calculation") + 'clsRTransformFunction.SetRCommand("instat_calculation$new") + 'clsRTransformFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + 'clsRTransformFunction.AddParameter("function_exp", clsRFunctionParameter:=clsRCountFunction, iPosition:=1) ' changes depending on the rdo + 'clsRTransformFunction.AddParameter("result_name", Chr(34) & "count" & Chr(34), iPosition:=2) + 'clsRTransformFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsRTransformCountSpellSub, iPosition:=4) + 'clsRTransformFunction.AddParameter("manipulations", clsRFunctionParameter:=clsTransformManipulationsFunc, iPosition:=5) + 'clsRTransformFunction.AddParameter("save", 2, iPosition:=6) + 'clsRTransformFunction.SetAssignTo("transform_calculation") + clsTransformCheck = clsRTransform clsOverallTransformFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") @@ -829,7 +838,6 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform ReduceWaterBalance() - AutoFill() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -965,7 +973,6 @@ Public Class dlgTransformClimatic ReduceWaterBalance() ChangeFunctions() AddCalculate() - AutoFill() End Sub Private Sub ucrInputSpellLower_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputSpellUpper.ControlValueChanged, ucrInputCondition.ControlValueChanged @@ -975,7 +982,6 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() - AutoFill() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -1142,19 +1148,6 @@ Public Class dlgTransformClimatic End If End Sub - Private Sub AutoFill() - If rdoWaterBalance.Checked Then - Dim strDataFrame As String - Dim strRainCol As String - - strDataFrame = ucrSelectorTransform.ucrAvailableDataFrames.cboAvailableDataFrames.Text - strRainCol = frmMain.clsRLink.GetClimaticColumnOfType(strDataFrame, "rain_label") - If strRainCol <> "" Then - ucrReceiverData.Add(strRainCol, strDataFrame) - End If - End If - End Sub - Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then clsPMaxFunctionMax.RemoveParameterByName("wb") @@ -1193,7 +1186,7 @@ Public Class dlgTransformClimatic End If End Sub - Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged, ucrNudWB.ControlValueChanged + Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged ReduceWaterBalance() End Sub From b24513ac3d2ed542e121ae59aebc3f196c501395 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Fri, 19 Apr 2024 09:54:59 +0100 Subject: [PATCH 05/21] change made --- instat/dlgTransformClimatic.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 2596b72c6f5..6ba2e2c832a 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -1156,9 +1156,10 @@ Public Class dlgTransformClimatic clsPMaxFunctionMax.RemoveParameterByName("calculation") clsWBEvaporation.RemoveParameterByName("evaporation.value") If rdoEvapValue.Checked Then - clsRTransform.RemoveParameterByName("calculated_from") + 'clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") + clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) If ucrChkWB.Checked Then clsWBEvaporation.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) From 8d5e13d893ab6084ed6122bc3a861de641d4f623 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Fri, 19 Apr 2024 12:57:09 +0100 Subject: [PATCH 06/21] Change made --- instat/dlgTransformClimatic.vb | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 6ba2e2c832a..6e0ea4bc1ed 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -351,10 +351,10 @@ Public Class dlgTransformClimatic Private Sub SetDefaults() clsRTransform = New RFunction - clsAsNumericFunction = New RFunction clsOverallTransformFunction = New RFunction clsTransformManipulationsFunc = New RFunction clsRTransformCountSpellSub = New RFunction + clsAsNumericFunction = New RFunction clsDummyFunction = New RFunction @@ -537,7 +537,6 @@ Public Class dlgTransformClimatic clsTailFunction.SetRCommand("tail") clsTailFunction.AddParameter("n", "-1", iPosition:=1) - ' Degree clsDiurnalRangeOperator.SetOperation("-") clsDiurnalRangeOperator.bToScriptAsRString = True @@ -643,15 +642,6 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("save", 2, iPosition:=6) clsRTransform.SetAssignTo("transform_calculation") - 'clsRTransformFunction.SetRCommand("instat_calculation$new") - 'clsRTransformFunction.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) - 'clsRTransformFunction.AddParameter("function_exp", clsRFunctionParameter:=clsRCountFunction, iPosition:=1) ' changes depending on the rdo - 'clsRTransformFunction.AddParameter("result_name", Chr(34) & "count" & Chr(34), iPosition:=2) - 'clsRTransformFunction.AddParameter("sub_calculations", clsRFunctionParameter:=clsRTransformCountSpellSub, iPosition:=4) - 'clsRTransformFunction.AddParameter("manipulations", clsRFunctionParameter:=clsTransformManipulationsFunc, iPosition:=5) - 'clsRTransformFunction.AddParameter("save", 2, iPosition:=6) - 'clsRTransformFunction.SetAssignTo("transform_calculation") - clsTransformCheck = clsRTransform clsOverallTransformFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") @@ -694,11 +684,13 @@ Public Class dlgTransformClimatic ucrNudMgdd.AddAdditionalCodeParameterPair(clsModifiedLogicOperator, New RParameter("baseline", ucrNudMgdd.GetText, 1), iAdditionalPairNo:=1) ucrReceiverTMax.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmax", 0), iAdditionalPairNo:=2) ucrReceiverTMin.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmin", 1), iAdditionalPairNo:=2) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsTailFunction, New RParameter("x", 1), iAdditionalPairNo:=1) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=3) ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsWBEvaporation, New RParameter("capacity", 1, False), iAdditionalPairNo:=1) + ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) ucrInputSum.SetRCode(clsRMovingFunction, bReset) @@ -727,6 +719,7 @@ Public Class dlgTransformClimatic ucrNudGDD.SetRCode(clsGrowingDegreDiffOperator, bReset) ucrNudLimit.SetRCode(clsModifiedMinfunction, bReset) ucrNudMgdd.SetRCode(clsModifiedDiffOperator, bReset) + ucrPnlDegree.SetRCode(clsDummyFunction, bReset) ucrSaveColumn.SetRCode(clsRTransform, bReset) If bReset Then @@ -1156,10 +1149,9 @@ Public Class dlgTransformClimatic clsPMaxFunctionMax.RemoveParameterByName("calculation") clsWBEvaporation.RemoveParameterByName("evaporation.value") If rdoEvapValue.Checked Then - 'clsRTransform.RemoveParameterByName("calculated_from") + clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") - clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) If ucrChkWB.Checked Then clsWBEvaporation.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) From 6ed0b39eb4e1db7a2fe496171b673e4569cfd51d Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Fri, 19 Apr 2024 16:17:17 +0100 Subject: [PATCH 07/21] Change made --- instat/dlgTransformClimatic.vb | 53 +++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 6e0ea4bc1ed..660a849a25e 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -333,7 +333,7 @@ Public Class dlgTransformClimatic ucrPnlTransform.AddToLinkedControls(ucrChkCircular, {rdoMoving}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls(ucrNudMultSpells, {rdoMultSpells}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=21) ucrPnlTransform.AddToLinkedControls(ucrPnlEvap, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) + ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=60) ucrPnlTransform.AddToLinkedControls(ucrChkGroupByYear, {rdoCount, rdoMoving, rdoSpell, rdoMultSpells, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrReceiverYear, ucrReceiverData, ucrChkOptions}, {rdoCumulative, rdoCount, rdoMoving, rdoMultSpells, rdoSpell, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrChkUseMaxMin, ucrPnlDegree}, {rdoDegree}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) @@ -410,8 +410,6 @@ Public Class dlgTransformClimatic ucrSelectorTransform.Reset() ucrReceiverData.SetMeAsReceiver() - ucrNudWBCapacity.SetText("60") - ' Count and Spells: Rainday clsRRainday.SetRCommand("instat_calculation$new") clsRRainday.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -502,7 +500,7 @@ Public Class dlgTransformClimatic clsPMaxFunctionMax.SetRCommand("pmax") clsPMaxOperatorMax.SetOperation("-") clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) - clsPMinFunctionMax.AddParameter("capacity", 60, iPosition:=1, bIncludeArgumentName:=False) + 'clsPMinFunctionMax.AddParameter("capacity", 60, iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) clsRWaterBalanceFunction1.bToScriptAsRString = True @@ -727,7 +725,7 @@ Public Class dlgTransformClimatic ucrInputEvaporation.SetRCode(clsPMaxOperatorMax, bReset) ucrPnlEvap.SetRCode(clsDummyFunction, bReset) ucrNudWB.SetRCode(clsWBEvaporation, bReset) - ucrChkWB.SetRCode(clsWBEvaporation, bReset) + ucrChkWB.SetRCode(clsPMinFunctionMax, bReset) ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If @@ -831,6 +829,7 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform ReduceWaterBalance() + AutoFill() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -966,6 +965,7 @@ Public Class dlgTransformClimatic ReduceWaterBalance() ChangeFunctions() AddCalculate() + AutoFill() End Sub Private Sub ucrInputSpellLower_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputSpellUpper.ControlValueChanged, ucrInputCondition.ControlValueChanged @@ -975,6 +975,7 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() + AutoFill() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -998,9 +999,9 @@ Public Class dlgTransformClimatic ReduceWaterBalance() End Sub - Private Sub ucrInputEvaporation_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlContentsChanged, ucrPnlEvap.ControlContentsChanged - ReduceWaterBalance() - End Sub + 'Private Sub ucrInputEvaporation_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlContentsChanged, ucrPnlEvap.ControlContentsChanged + ' ReduceWaterBalance() + 'End Sub Private Sub RasterFunction() If rdoMoving.Checked Then @@ -1141,6 +1142,20 @@ Public Class dlgTransformClimatic End If End Sub + Private Sub AutoFill() + If rdoWaterBalance.Checked Then + Dim strDataFrame As String + Dim strRainCol As String + + strDataFrame = ucrSelectorTransform.ucrAvailableDataFrames.cboAvailableDataFrames.Text + strRainCol = frmMain.clsRLink.GetClimaticColumnOfType(strDataFrame, "rain_label") + + If strRainCol <> "" Then + ucrReceiverData.Add(strRainCol, strDataFrame) + End If + End If + End Sub + Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then clsPMaxFunctionMax.RemoveParameterByName("wb") @@ -1148,11 +1163,17 @@ Public Class dlgTransformClimatic clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") clsPMaxFunctionMax.RemoveParameterByName("calculation") clsWBEvaporation.RemoveParameterByName("evaporation.value") + clsPMinFunctionMax.RemoveParameterByName("capacity") If rdoEvapValue.Checked Then clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") If ucrChkWB.Checked Then + If Not ucrNudWB.IsEmpty Then + clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) + Else + clsWBEvaporation.RemoveParameterByName("WB_evap_value") + End If clsWBEvaporation.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else @@ -1165,10 +1186,17 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") If ucrChkWB.Checked Then clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) + ' clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) + If Not ucrNudWB.IsEmpty Then + clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) + Else + clsWBEvaporation.RemoveParameterByName("WB_evap_value") + End If clsWBEvaporation.AddParameter("value", "..3", iPosition:=4, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) Else + clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) clsReduceOpEvapValue2.AddParameter("x", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) @@ -1194,4 +1222,13 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverDate_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDate.ControlValueChanged ReduceWaterBalance() End Sub + + Private Sub ucrNudWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrNudWB.ControlValueChanged + ReduceWaterBalance() + End Sub + + Private Sub ucrSelectorTransform_DataFrameChanged() Handles ucrSelectorTransform.DataFrameChanged + AutoFill() + TestOkEnabled() + End Sub End Class \ No newline at end of file From d90c08367eb4bd5083f387b343e22306cf8f00bc Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Mon, 22 Apr 2024 12:03:31 +0100 Subject: [PATCH 08/21] Change made --- instat/dlgTransformClimatic.vb | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 660a849a25e..f8445dee55f 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -530,7 +530,7 @@ Public Class dlgTransformClimatic clsWBEvaporation.SetRCommand("WB_evaporation") clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) + 'clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) clsTailFunction.SetRCommand("tail") @@ -686,7 +686,7 @@ Public Class dlgTransformClimatic ucrReceiverEvap.AddAdditionalCodeParameterPair(clsTailFunction, New RParameter("x", 1), iAdditionalPairNo:=1) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=3) - ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsWBEvaporation, New RParameter("capacity", 1, False), iAdditionalPairNo:=1) + 'ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsWBEvaporation, New RParameter("capacity", 1, False), iAdditionalPairNo:=1) ' Moving @@ -975,7 +975,7 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() - AutoFill() + ' AutoFill() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -1165,16 +1165,13 @@ Public Class dlgTransformClimatic clsWBEvaporation.RemoveParameterByName("evaporation.value") clsPMinFunctionMax.RemoveParameterByName("capacity") If rdoEvapValue.Checked Then - clsRTransform.RemoveParameterByName("calculated_from") + 'clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") If ucrChkWB.Checked Then - If Not ucrNudWB.IsEmpty Then - clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) - Else - clsWBEvaporation.RemoveParameterByName("WB_evap_value") - End If - clsWBEvaporation.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("evaportion_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) @@ -1186,13 +1183,9 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") If ucrChkWB.Checked Then clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) - ' clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) - If Not ucrNudWB.IsEmpty Then - clsWBEvaporation.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=2, bIncludeArgumentName:=False) - Else - clsWBEvaporation.RemoveParameterByName("WB_evap_value") - End If - clsWBEvaporation.AddParameter("value", "..3", iPosition:=4, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("evaporation_value", "..3", iPosition:=3, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) Else From 54451c3f43225a1a57386e5e6ec1ebe7fd2b4f50 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Mon, 22 Apr 2024 15:16:22 +0100 Subject: [PATCH 09/21] Change made --- instat/dlgTransformClimatic.vb | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index f8445dee55f..4e07cd51c37 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -656,16 +656,13 @@ Public Class dlgTransformClimatic ucrReceiverData.AddAdditionalCodeParameterPair(clsRRaindayUpperOperator, New RParameter("rain", 0), iAdditionalPairNo:=3) ucrReceiverData.AddAdditionalCodeParameterPair(clsRRaindayLowerOperator, New RParameter("rain", 0), iAdditionalPairNo:=4) ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction, New RParameter("replace_na", 1, False), iAdditionalPairNo:=5) - ucrReceiverData.AddAdditionalCodeParameterPair(clsReduceOpEvapValue, New RParameter("left", 0, False), iAdditionalPairNo:=6) - ucrReceiverData.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=7) - ucrReceiverData.AddAdditionalCodeParameterPair(clsLessThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=8) - ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeSum, New RParameter("x", 0, False), iAdditionalPairNo:=9) - ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMaximum, New RParameter("x", 0, False), iAdditionalPairNo:=10) - ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=11) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction1, New RParameter("replace_na", 1, False), iAdditionalPairNo:=12) - ucrReceiverData.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("left", 0, False), iAdditionalPairNo:=13) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction2, New RParameter("replace_na", 1, False), iAdditionalPairNo:=14) - ucrReceiverData.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("left", 0, False), iAdditionalPairNo:=15) + ucrReceiverData.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=6) + ucrReceiverData.AddAdditionalCodeParameterPair(clsLessThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=7) + ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeSum, New RParameter("x", 0, False), iAdditionalPairNo:=8) + ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMaximum, New RParameter("x", 0, False), iAdditionalPairNo:=9) + ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=10) + ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction1, New RParameter("replace_na", 1, False), iAdditionalPairNo:=11) + ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction2, New RParameter("replace_na", 1, False), iAdditionalPairNo:=12) ucrNudSumOver.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrInputSum.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("fun", 2), iAdditionalPairNo:=1) ucrInputSpellUpper.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("max", 1), iAdditionalPairNo:=1) @@ -684,10 +681,6 @@ Public Class dlgTransformClimatic ucrReceiverTMin.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmin", 1), iAdditionalPairNo:=2) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsTailFunction, New RParameter("x", 1), iAdditionalPairNo:=1) - ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue1, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) - ucrReceiverEvap.AddAdditionalCodeParameterPair(clsReduceOpEvapValue2, New RParameter("right", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=3) - 'ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsWBEvaporation, New RParameter("capacity", 1, False), iAdditionalPairNo:=1) - ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) @@ -724,7 +717,6 @@ Public Class dlgTransformClimatic ucrChkGroupByYear.SetRCode(clsTransformManipulationsFunc, bReset) ucrInputEvaporation.SetRCode(clsPMaxOperatorMax, bReset) ucrPnlEvap.SetRCode(clsDummyFunction, bReset) - ucrNudWB.SetRCode(clsWBEvaporation, bReset) ucrChkWB.SetRCode(clsPMinFunctionMax, bReset) ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) @@ -800,7 +792,7 @@ Public Class dlgTransformClimatic End Select End Sub - Private Sub ucrPnlTransform_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlTransform.ControlValueChanged, ucrPnlDegree.ControlValueChanged, ucrPnlEvap.ControlValueChanged + Private Sub ucrPnlTransform_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlTransform.ControlValueChanged, ucrPnlDegree.ControlValueChanged ', ucrPnlEvap.ControlValueChanged If rdoCumulative.Checked Then CumulativeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -828,14 +820,14 @@ Public Class dlgTransformClimatic clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform - ReduceWaterBalance() - AutoFill() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform End If AddCalculate() + ReduceWaterBalance() + AutoFill() SetAssignName() GroupByStation() GroupByYear() @@ -1162,37 +1154,41 @@ Public Class dlgTransformClimatic clsPMaxOperatorMax.RemoveParameterByName("first") clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") clsPMaxFunctionMax.RemoveParameterByName("calculation") - clsWBEvaporation.RemoveParameterByName("evaporation.value") + clsWBEvaporation.RemoveParameterByName("evaporation_value") + clsWBEvaporation.RemoveParameterByName("value") clsPMinFunctionMax.RemoveParameterByName("capacity") If rdoEvapValue.Checked Then - 'clsRTransform.RemoveParameterByName("calculated_from") ucrReceiverData.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") + clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) If ucrChkWB.Checked Then clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("evaportion_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("evaporation_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) End If - ElseIf rdoEvapVariable.Checked Then + Else ucrReceiverEvap.SetMeAsReceiver() clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") If ucrChkWB.Checked Then clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("evaporation_value", "..3", iPosition:=3, bIncludeArgumentName:=False) + clsWBEvaporation.AddParameter("value", "..3", iPosition:=3, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) + clsReduceOpEvapValue1.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) + clsReduceOpEvapValue1.AddParameter("right", ucrReceiverEvap.GetVariableNames(False), iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) Else clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - clsReduceOpEvapValue2.AddParameter("x", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) + clsReduceOpEvapValue2.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) + clsReduceOpEvapValue2.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction2.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue2, iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) End If @@ -1224,4 +1220,8 @@ Public Class dlgTransformClimatic AutoFill() TestOkEnabled() End Sub + + Private Sub ucrPnlEvap_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlEvap.ControlValueChanged + ReduceWaterBalance() + End Sub End Class \ No newline at end of file From 85a14304e18fbb77f859d91c51eba2eb4b9bf0ba Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Mon, 22 Apr 2024 17:58:10 +0100 Subject: [PATCH 10/21] Change made --- instat/dlgTransformClimatic.vb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 4e07cd51c37..58125c67743 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -266,7 +266,7 @@ Public Class dlgTransformClimatic ucrNudMultSpells.SetLinkedDisplayControl(lblRowsMultSpells) ' Water Balance - ucrNudWBCapacity.SetParameter(New RParameter("capacity", 1), False) + ucrNudWBCapacity.SetParameter(New RParameter("capacity", 1, False)) ucrNudWBCapacity.SetMinMax(1, Integer.MaxValue) ucrNudWBCapacity.Increment = 10 ucrNudWBCapacity.SetLinkedDisplayControl(lblWBCapacity) @@ -500,7 +500,6 @@ Public Class dlgTransformClimatic clsPMaxFunctionMax.SetRCommand("pmax") clsPMaxOperatorMax.SetOperation("-") clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) - 'clsPMinFunctionMax.AddParameter("capacity", 60, iPosition:=1, bIncludeArgumentName:=False) clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) clsRWaterBalanceFunction1.bToScriptAsRString = True @@ -700,7 +699,6 @@ Public Class dlgTransformClimatic ' Water Balance ucrReceiverEvap.SetRCode(clsAsNumericFunction, bReset) - ucrNudWBCapacity.SetRCode(clsPMinFunctionMax, bReset) 'Degree ucrReceiverTMin.SetRCode(clsDiurnalRangeOperator, bReset) @@ -967,7 +965,6 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() - ' AutoFill() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -991,9 +988,9 @@ Public Class dlgTransformClimatic ReduceWaterBalance() End Sub - 'Private Sub ucrInputEvaporation_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlContentsChanged, ucrPnlEvap.ControlContentsChanged - ' ReduceWaterBalance() - 'End Sub + Private Sub ucrInputEvaporation_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrInputEvaporation.ControlContentsChanged, ucrPnlEvap.ControlContentsChanged + ReduceWaterBalance() + End Sub Private Sub RasterFunction() If rdoMoving.Checked Then @@ -1167,6 +1164,7 @@ Public Class dlgTransformClimatic clsWBEvaporation.AddParameter("evaporation_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) Else + clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) @@ -1224,4 +1222,8 @@ Public Class dlgTransformClimatic Private Sub ucrPnlEvap_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrPnlEvap.ControlValueChanged ReduceWaterBalance() End Sub + + Private Sub ucrNudWBCapacity_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrNudWBCapacity.ControlValueChanged + ReduceWaterBalance() + End Sub End Class \ No newline at end of file From a204339a6285b6a1ea5423b0081109edbd1bb3e4 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Tue, 23 Apr 2024 14:56:02 +0100 Subject: [PATCH 11/21] minor change made --- instat/dlgTransformClimatic.resx | 2 +- instat/dlgTransformClimatic.vb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/instat/dlgTransformClimatic.resx b/instat/dlgTransformClimatic.resx index 7df82c09ec8..f29598120cd 100644 --- a/instat/dlgTransformClimatic.resx +++ b/instat/dlgTransformClimatic.resx @@ -2248,7 +2248,7 @@ 28 - 9, 254 + 9, 248 428, 151 diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 58125c67743..e15dac2adde 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -333,7 +333,7 @@ Public Class dlgTransformClimatic ucrPnlTransform.AddToLinkedControls(ucrChkCircular, {rdoMoving}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls(ucrNudMultSpells, {rdoMultSpells}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=21) ucrPnlTransform.AddToLinkedControls(ucrPnlEvap, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) - ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=60) + ucrPnlTransform.AddToLinkedControls(ucrNudWBCapacity, {rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True, bNewLinkedChangeToDefaultState:=True, objNewDefaultState:=100) ucrPnlTransform.AddToLinkedControls(ucrChkGroupByYear, {rdoCount, rdoMoving, rdoSpell, rdoMultSpells, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrReceiverYear, ucrReceiverData, ucrChkOptions}, {rdoCumulative, rdoCount, rdoMoving, rdoMultSpells, rdoSpell, rdoWaterBalance}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) ucrPnlTransform.AddToLinkedControls({ucrChkUseMaxMin, ucrPnlDegree}, {rdoDegree}, bNewLinkedAddRemoveParameter:=True, bNewLinkedHideIfParameterMissing:=True) From 387fbe31a43327b287deec8b2037353713e08089 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 8 May 2024 09:48:03 +0100 Subject: [PATCH 12/21] Change made --- instat/dlgTransformClimatic.vb | 377 +++++++++++++++++++++++---------- 1 file changed, 268 insertions(+), 109 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index e15dac2adde..19b0f93c01f 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -34,9 +34,20 @@ Public Class dlgTransformClimatic Private clsRRaindayAndOperator, clsRRaindayOrOperator, clsRRaindayUpperOperator, clsRRaindayLowerOperator As New ROperator Private clsGreaterThanOperator, clsLessThanOperator As New ROperator - ' Water Balance - Private clsPMinFunctionMax, clsPMaxFunctionMax, clsRWaterBalanceFunction, clsRWaterBalanceFunction2, clsRWaterBalanceFunction1, clsTailFunction, clsWBEvaporation As New RFunction - Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator + ' Water Balance Min + Private clsEndSeasonWBMinCalc As New RFunction + Private clsEndSeasonWBMinCalcSubCalcsList As New RFunction + Private clsReduceWBMinFunction As New RFunction + Private clsReduceWBMinFunction1 As New RFunction + Private clsWBMinEvapOperator As New ROperator + 'Private clsPMinFunctionMax, clsPMaxFunctionMax, clsRWaterBalanceFunction, clsRWaterBalanceFunction2, clsRWaterBalanceFunction1, clsTailFunction, clsWBEvaporation As New RFunction + 'Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator + + ' Water Balance max + Private clsEndSeasonWBMaxCalc As New RFunction + Private clsEndSeasonWBMaxCalcSubCalcsList As New RFunction + Private clsReduceWBMaxFunction As New RFunction + Private clsReduceWBMaxFunction1 As New RFunction 'Degree Private clsDiurnalRangeOperator, clsTMeanAddOperator, clsTMeanDivideOperator As New ROperator @@ -366,11 +377,11 @@ Public Class dlgTransformClimatic clsRasterFuction = New RFunction clsReplaceNAasElement = New RFunction clsRCountFunction = New RFunction - clsRWaterBalanceFunction = New RFunction - clsRWaterBalanceFunction1 = New RFunction - clsRWaterBalanceFunction2 = New RFunction - clsWBEvaporation = New RFunction - clsTailFunction = New RFunction + 'clsRWaterBalanceFunction = New RFunction + 'clsRWaterBalanceFunction1 = New RFunction + 'clsRWaterBalanceFunction2 = New RFunction + 'clsWBEvaporation = New RFunction + 'clsTailFunction = New RFunction clsRRaindayMatch = New RFunction clsRRaindayAndOperator = New ROperator clsRRaindayOrOperator = New ROperator @@ -396,20 +407,33 @@ Public Class dlgTransformClimatic clsMeanAddOperator = New ROperator clsMeanDivideByOperator = New ROperator - clsPMinFunctionMax = New RFunction - clsPMaxFunctionMax = New RFunction - clsPMaxOperatorMax = New ROperator - clsWBOperator = New ROperator - clsGroupByYear.Clear() - clsReduceOpEvapValue.Clear() - clsReduceOpEvapValue1.Clear() - clsReduceOpEvapValue2.Clear() + 'clsPMinFunctionMax = New RFunction + 'clsPMaxFunctionMax = New RFunction + 'clsPMaxOperatorMax = New ROperator + 'clsWBOperator = New ROperator + 'clsGroupByYear.Clear() + 'clsReduceOpEvapValue.Clear() + 'clsReduceOpEvapValue1.Clear() + 'clsReduceOpEvapValue2.Clear() clsGreaterThanOperator.Clear() clsLessThanOperator.Clear() ucrSelectorTransform.Reset() ucrReceiverData.SetMeAsReceiver() + ' Water Balance min + clsEndSeasonWBMinCalc.Clear() + clsEndSeasonWBMinCalcSubCalcsList.Clear() + clsReduceWBMinFunction.Clear() + clsReduceWBMinFunction1.Clear() + clsWBMinEvapOperator.Clear() + + ' Water Balance max + clsEndSeasonWBMaxCalc.Clear() + clsEndSeasonWBMaxCalcSubCalcsList.Clear() + clsReduceWBMaxFunction.Clear() + clsReduceWBMaxFunction1.Clear() + ' Count and Spells: Rainday clsRRainday.SetRCommand("instat_calculation$new") clsRRainday.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -489,51 +513,126 @@ Public Class dlgTransformClimatic clsRasterFuction.bToScriptAsRString = True ' Water Balance - clsAsNumericFunction.SetRCommand("as.numeric") - - clsRWaterBalanceFunction.bToScriptAsRString = True - clsRWaterBalanceFunction.SetPackageName("purrr") - clsRWaterBalanceFunction.SetRCommand("accumulate") - clsRWaterBalanceFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - clsPMinFunctionMax.SetRCommand("~ pmin") - clsPMinFunctionMax.AddParameter("pmax", clsRFunctionParameter:=clsPMaxFunctionMax, iPosition:=0, bIncludeArgumentName:=False) - clsPMaxFunctionMax.SetRCommand("pmax") - clsPMaxOperatorMax.SetOperation("-") - clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) - clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) - - clsRWaterBalanceFunction1.bToScriptAsRString = True - clsRWaterBalanceFunction1.SetPackageName("purrr") - clsRWaterBalanceFunction1.SetRCommand("accumulate2") - clsRWaterBalanceFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - clsRWaterBalanceFunction1.AddParameter(".y", clsRFunctionParameter:=clsTailFunction, iPosition:=1) - clsRWaterBalanceFunction1.AddParameter("accumulate", "TRUE", iPosition:=2) - - clsRWaterBalanceFunction2.bToScriptAsRString = True - clsRWaterBalanceFunction2.SetPackageName("purrr") - clsRWaterBalanceFunction2.SetRCommand("accumulate") - clsRWaterBalanceFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - clsRWaterBalanceFunction2.AddParameter("accumulate", "TRUE", iPosition:=2) - - clsWBOperator.SetOperation("-") - clsWBOperator.AddParameter("left", "..1 + ..2", iPosition:=0) - clsWBOperator.AddParameter("right", clsRFunctionParameter:=clsWBEvaporation, iPosition:=1) - clsWBOperator.bSpaceAroundOperation = True - clsWBOperator.bBrackets = False - - clsReduceOpEvapValue.SetOperation("-") - - clsReduceOpEvapValue1.SetOperation("-") - - clsReduceOpEvapValue2.SetOperation("-") - - clsWBEvaporation.SetRCommand("WB_evaporation") - clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) - 'clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) - - clsTailFunction.SetRCommand("tail") - clsTailFunction.AddParameter("n", "-1", iPosition:=1) + 'clsAsNumericFunction.SetRCommand("as.numeric") + + 'clsRWaterBalanceFunction.bToScriptAsRString = True + 'clsRWaterBalanceFunction.SetPackageName("purrr") + 'clsRWaterBalanceFunction.SetRCommand("accumulate") + 'clsRWaterBalanceFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + 'clsPMinFunctionMax.SetRCommand("~ pmin") + 'clsPMinFunctionMax.AddParameter("pmax", clsRFunctionParameter:=clsPMaxFunctionMax, iPosition:=0, bIncludeArgumentName:=False) + 'clsPMaxFunctionMax.SetRCommand("pmax") + 'clsPMaxOperatorMax.SetOperation("-") + 'clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) + 'clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) + + 'clsRWaterBalanceFunction1.bToScriptAsRString = True + 'clsRWaterBalanceFunction1.SetPackageName("purrr") + 'clsRWaterBalanceFunction1.SetRCommand("accumulate2") + 'clsRWaterBalanceFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + 'clsRWaterBalanceFunction1.AddParameter(".y", clsRFunctionParameter:=clsTailFunction, iPosition:=1) + 'clsRWaterBalanceFunction1.AddParameter("accumulate", "TRUE", iPosition:=2) + + 'clsRWaterBalanceFunction2.bToScriptAsRString = True + 'clsRWaterBalanceFunction2.SetPackageName("purrr") + 'clsRWaterBalanceFunction2.SetRCommand("accumulate") + 'clsRWaterBalanceFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) + 'clsRWaterBalanceFunction2.AddParameter("accumulate", "TRUE", iPosition:=2) + + 'clsWBOperator.SetOperation("-") + 'clsWBOperator.AddParameter("left", "..1 + ..2", iPosition:=0) + 'clsWBOperator.AddParameter("right", clsRFunctionParameter:=clsWBEvaporation, iPosition:=1) + 'clsWBOperator.bSpaceAroundOperation = True + 'clsWBOperator.bBrackets = False + + 'clsReduceOpEvapValue.SetOperation("-") + + 'clsReduceOpEvapValue1.SetOperation("-") + + 'clsReduceOpEvapValue2.SetOperation("-") + + 'clsWBEvaporation.SetRCommand("WB_evaporation") + 'clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) + ''clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) + 'clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) + + 'clsTailFunction.SetRCommand("tail") + 'clsTailFunction.AddParameter("n", "-1", iPosition:=1) + + ' Water Balance min + clsEndSeasonWBMinCalc.SetRCommand("instat_calculation$new") + clsEndSeasonWBMinCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction, iPosition:=1) + clsEndSeasonWBMinCalc.AddParameter("result_name", Chr(34) & strWBMin & Chr(34), iPosition:=2) + clsEndSeasonWBMinCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBMinCalcSubCalcsList, iPosition:=3) + clsEndSeasonWBMinCalc.SetAssignTo(strWBMin) + + clsEndSeasonWBMinCalcSubCalcsList.SetRCommand("list") + clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMinCalc, iPosition:=0, bIncludeArgumentName:=False) + + clsReduceWBMinFunction.bToScriptAsRString = True + clsReduceWBMinFunction.SetPackageName("purrr") + clsReduceWBMinFunction.SetRCommand("accumulate") + clsReduceWBMinFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=0) + clsReduceWBMinFunction.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=1) + clsReduceWBMinFunction.AddParameter(".init", "0", iPosition:=2) + + clsReduceWBMinFunction1.bToScriptAsRString = True + clsReduceWBMinFunction1.SetPackageName("purrr") + clsReduceWBMinFunction1.SetRCommand("accumulate2") + clsReduceWBMinFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=0) + clsReduceWBMinFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=1) + clsReduceWBMinFunction1.AddParameter(".init", "0", iPosition:=2) + + + clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") + clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBCalcSubCalcsList.AddParameter("1", clsRFunctionParameter:=clsEndSeasonWBMaxCalc, iPosition:=1, bIncludeArgumentName:=False) + + + clsWBMinTailFunction.SetRCommand("tail") + clsWBMinTailFunction.AddParameter("x", clsROperatorParameter:=clsWBMinEvapOperator, iPosition:=0) + clsWBMinTailFunction.AddParameter("n", "-1", iPosition:=1) + + clsWBMinTailFunction1.SetRCommand("tail") + clsWBMinTailFunction1.AddParameter("x", ucrReceiverEvaporation.GetVariableNames(False), iPosition:=0) + clsWBMinTailFunction1.AddParameter("n", "-1", iPosition:=1) + + clsWBMinEvapOperator.SetOperation("-") + clsWBMinEvapOperator.AddParameter("0", strRainMin, iPosition:=0) + clsWBMinEvapOperator.AddParameter("value", "5", iPosition:=1) + + ' Water Balance max + clsEndSeasonWBMaxCalc.SetRCommand("instat_calculation$new") + clsEndSeasonWBMaxCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction, iPosition:=1) + clsEndSeasonWBMaxCalc.AddParameter("result_name", Chr(34) & strWBMax & Chr(34), iPosition:=2) + clsEndSeasonWBMaxCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBMaxCalcSubCalcsList, iPosition:=3) + clsEndSeasonWBMaxCalc.SetAssignTo(strWBMax) + + clsEndSeasonWBMaxCalcSubCalcsList.SetRCommand("list") + clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMaxCalc, iPosition:=0, bIncludeArgumentName:=False) + + clsReduceWBMaxFunction.bToScriptAsRString = True + clsReduceWBMaxFunction.SetPackageName("purrr") + clsReduceWBMaxFunction.SetRCommand("accumulate") + clsReduceWBMaxFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMaxFunction, iPosition:=0) + clsReduceWBMaxFunction.AddParameter(".x", clsRFunctionParameter:=clsWBMaxTailFunction, iPosition:=1) + clsReduceWBMaxFunction.AddParameter(".init", "0", iPosition:=2) + + clsReduceWBMaxFunction1.bToScriptAsRString = True + clsReduceWBMaxFunction1.SetPackageName("purrr") + clsReduceWBMaxFunction1.SetRCommand("accumulate2") + clsReduceWBMaxFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMaxFunction, iPosition:=0) + clsReduceWBMaxFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMaxTailFunction, iPosition:=1) + clsReduceWBMaxFunction1.AddParameter(".init", "0", iPosition:=2) + + + clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") + clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBCalcSubCalcsList.AddParameter("1", clsRFunctionParameter:=clsEndSeasonWBMaxCalc, iPosition:=1, bIncludeArgumentName:=False) + + ' Degree clsDiurnalRangeOperator.SetOperation("-") clsDiurnalRangeOperator.bToScriptAsRString = True @@ -1145,54 +1244,54 @@ Public Class dlgTransformClimatic End If End Sub - Private Sub ReduceWaterBalance() - If rdoWaterBalance.Checked Then - clsPMaxFunctionMax.RemoveParameterByName("wb") - clsPMaxOperatorMax.RemoveParameterByName("first") - clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") - clsPMaxFunctionMax.RemoveParameterByName("calculation") - clsWBEvaporation.RemoveParameterByName("evaporation_value") - clsWBEvaporation.RemoveParameterByName("value") - clsPMinFunctionMax.RemoveParameterByName("capacity") - If rdoEvapValue.Checked Then - ucrReceiverData.SetMeAsReceiver() - clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") - clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) - If ucrChkWB.Checked Then - clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("evaporation_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) - Else - clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) - End If - Else - ucrReceiverEvap.SetMeAsReceiver() - clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") - If ucrChkWB.Checked Then - clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) - clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - clsWBEvaporation.AddParameter("value", "..3", iPosition:=3, bIncludeArgumentName:=False) - clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) - clsReduceOpEvapValue1.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) - clsReduceOpEvapValue1.AddParameter("right", ucrReceiverEvap.GetVariableNames(False), iPosition:=1, bIncludeArgumentName:=False) - clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) - Else - clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) - clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - clsReduceOpEvapValue2.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) - clsReduceOpEvapValue2.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) - clsRWaterBalanceFunction2.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue2, iPosition:=1, bIncludeArgumentName:=False) - clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) - End If - End If - End If - End Sub + 'Private Sub ReduceWaterBalance() + ' If rdoWaterBalance.Checked Then + ' clsPMaxFunctionMax.RemoveParameterByName("wb") + ' clsPMaxOperatorMax.RemoveParameterByName("first") + ' clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") + ' clsPMaxFunctionMax.RemoveParameterByName("calculation") + ' clsWBEvaporation.RemoveParameterByName("evaporation_value") + ' clsWBEvaporation.RemoveParameterByName("value") + ' clsPMinFunctionMax.RemoveParameterByName("capacity") + ' If rdoEvapValue.Checked Then + ' ucrReceiverData.SetMeAsReceiver() + ' clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") + ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) + ' If ucrChkWB.Checked Then + ' clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + ' clsWBEvaporation.AddParameter("evaporation_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) + ' Else + ' clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) + ' clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) + ' End If + ' Else + ' ucrReceiverEvap.SetMeAsReceiver() + ' clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") + ' If ucrChkWB.Checked Then + ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) + ' clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + ' clsWBEvaporation.AddParameter("value", "..3", iPosition:=3, bIncludeArgumentName:=False) + ' clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) + ' clsReduceOpEvapValue1.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) + ' clsReduceOpEvapValue1.AddParameter("right", ucrReceiverEvap.GetVariableNames(False), iPosition:=1, bIncludeArgumentName:=False) + ' clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) + ' Else + ' clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) + ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) + ' clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) + ' clsReduceOpEvapValue2.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) + ' clsReduceOpEvapValue2.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) + ' clsRWaterBalanceFunction2.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue2, iPosition:=1, bIncludeArgumentName:=False) + ' clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) + ' End If + ' End If + ' End If + 'End Sub Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged ReduceWaterBalance() @@ -1226,4 +1325,64 @@ Public Class dlgTransformClimatic Private Sub ucrNudWBCapacity_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrNudWBCapacity.ControlValueChanged ReduceWaterBalance() End Sub + + + Private Sub ReduceWaterBalance() + If rdoWaterBalance.Checked Then + If rdoEvapValue.Checked Then + clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction, iPosition:=1) + clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction, iPosition:=1) + clsWBMinEvapOperator.RemoveParameterByName("variable") + clsWBMaxEvapOperator.RemoveParameterByName("variable") + If ucrChkWB.Checked Then + clsWBEvaporationMinFunction.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporationMinFunction.AddParameter("yes", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + clsWBEvaporationMinFunction.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=3, bIncludeArgumentName:=False) + clsPMaxFunction.AddParameter("wb", clsROperatorParameter:=clsWBOperator1, iPosition:=0, bIncludeArgumentName:=False) + clsPMaxFunction.RemoveParameterByName("0") + clsPMaxFunction.RemoveParameterByName("0") + clsWBMaxEvapOperator.RemoveParameterByName("value") + clsWBMinEvapOperator.RemoveParameterByName("value") + clsPMinWBMaxFunction.RemoveParameterByName("1") + clsPMinWBMinFunction.RemoveParameterByName("1") + Else + clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) + clsPMaxFunction.RemoveParameterByName("wb") + clsPMaxFunction.RemoveParameterByName("wb") + clsWBMaxEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) + clsWBMinEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) + clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + End If + Else + ucrReceiverEvap.SetMeAsReceiver() + clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction1, iPosition:=1) + clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction1, iPosition:=1) + clsWBMinEvapOperator.RemoveParameterByName("variable") + clsWBMaxEvapOperator.RemoveParameterByName("variable") + If ucrChkWB.Checked Then + clsWBEvaporationMinFunction.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsWBEvaporationMinFunction.AddParameter("yes", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) + clsWBEvaporationMinFunction.AddParameter("value", "..3", bIncludeArgumentName:=False, iPosition:=3) + clsReduceWBMinFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMinTailFunction1, iPosition:=1) + clsReduceWBMaxFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMaxTailFunction1, iPosition:=1) + clsPMaxFunction.AddParameter("wb", clsROperatorParameter:=clsWBOperator1, iPosition:=0, bIncludeArgumentName:=False) + clsPMaxFunction.RemoveParameterByName("0") + clsPMaxFunction.RemoveParameterByName("0") + clsWBMaxEvapOperator.RemoveParameterByName("value") + clsWBMinEvapOperator.RemoveParameterByName("value") + clsPMinWBMaxFunction.RemoveParameterByName("1") + clsPMinWBMinFunction.RemoveParameterByName("1") + Else + clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) + clsPMaxFunction.RemoveParameterByName("wb") + clsPMaxFunction.RemoveParameterByName("wb") + clsReduceWBMinFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMinTailFunction1, iPosition:=1) + clsReduceWBMaxFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMaxTailFunction1, iPosition:=1) + clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + End If + End If + End If + End Sub End Class \ No newline at end of file From 9c5f9e28c971a66c381a8343341786b3180ec798 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 8 May 2024 11:22:41 +0100 Subject: [PATCH 13/21] Change made --- instat/dlgTransformClimatic.vb | 81 ++++++++++++++++++++++++++++++---- 1 file changed, 73 insertions(+), 8 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 19b0f93c01f..200b1327d6d 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -40,14 +40,23 @@ Public Class dlgTransformClimatic Private clsReduceWBMinFunction As New RFunction Private clsReduceWBMinFunction1 As New RFunction Private clsWBMinEvapOperator As New ROperator - 'Private clsPMinFunctionMax, clsPMaxFunctionMax, clsRWaterBalanceFunction, clsRWaterBalanceFunction2, clsRWaterBalanceFunction1, clsTailFunction, clsWBEvaporation As New RFunction + Private clsWBEvaporationMinFunction As New RFunction + + Private clsPMinWBMinFunction As New RFunction + Private clsWBMinTailFunction1 As New RFunction 'Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator ' Water Balance max Private clsEndSeasonWBMaxCalc As New RFunction Private clsEndSeasonWBMaxCalcSubCalcsList As New RFunction Private clsReduceWBMaxFunction As New RFunction + Private clsPMinWBMaxFunction As New RFunction Private clsReduceWBMaxFunction1 As New RFunction + Private clsWBMaxEvapOperator As New ROperator + Private clsPMaxFunction As New RFunction + Private clsWBOperator1 As New ROperator + Private clsWBMaxTailFunction1 As New RFunction + Private clsEndSeasonWBCalcSubCalcsList As New RFunction 'Degree Private clsDiurnalRangeOperator, clsTMeanAddOperator, clsTMeanDivideOperator As New ROperator @@ -277,12 +286,12 @@ Public Class dlgTransformClimatic ucrNudMultSpells.SetLinkedDisplayControl(lblRowsMultSpells) ' Water Balance - ucrNudWBCapacity.SetParameter(New RParameter("capacity", 1, False)) + ucrNudWBCapacity.SetParameter(New RParameter("yes", 1)) ucrNudWBCapacity.SetMinMax(1, Integer.MaxValue) ucrNudWBCapacity.Increment = 10 ucrNudWBCapacity.SetLinkedDisplayControl(lblWBCapacity) - ucrInputEvaporation.SetParameter(New RParameter("evaporation.value", 1, False)) + ucrInputEvaporation.SetParameter(New RParameter("value", 1, bNewIncludeArgumentName:=False)) ucrInputEvaporation.SetValidationTypeAsNumeric() ucrInputEvaporation.AddQuotesIfUnrecognised = False ucrInputEvaporation.SetRDefault("5") @@ -427,12 +436,22 @@ Public Class dlgTransformClimatic clsReduceWBMinFunction.Clear() clsReduceWBMinFunction1.Clear() clsWBMinEvapOperator.Clear() + clsWBEvaporationMinFunction.Clear() + clsPMaxFunction.Clear() + clsPMinWBMinFunction.Clear() + clsWBMinTailFunction1.Clear() ' Water Balance max clsEndSeasonWBMaxCalc.Clear() clsEndSeasonWBMaxCalcSubCalcsList.Clear() clsReduceWBMaxFunction.Clear() clsReduceWBMaxFunction1.Clear() + clsWBMaxEvapOperator.Clear() + clsWBOperator1.Clear() + clsWBOperator2.Clear() + clsWBMaxTailFunction1.Clear() + clsPMinWBMaxFunction.Clear() + clsEndSeasonWBCalcSubCalcsList.Clear() ' Count and Spells: Rainday clsRRainday.SetRCommand("instat_calculation$new") @@ -559,6 +578,23 @@ Public Class dlgTransformClimatic 'clsTailFunction.SetRCommand("tail") 'clsTailFunction.AddParameter("n", "-1", iPosition:=1) + + clsWBOperator1.SetOperation("-") + clsWBOperator1.AddParameter("left", "..1 + ..2", iPosition:=0) + clsWBOperator1.AddParameter("right", clsRFunctionParameter:=clsWBEvaporationMinFunction, iPosition:=1) + clsWBOperator1.bSpaceAroundOperation = True + clsWBOperator1.bBrackets = False + + clsWBEvaporationMinFunction.SetRCommand("WB_evaporation") + clsWBEvaporationMinFunction.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) + clsWBEvaporationMinFunction.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) + + + clsPMaxFunction.SetRCommand("pmax") + clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) + clsPMaxFunction.AddParameter("1", "0", bIncludeArgumentName:=False) + + ' Water Balance min clsEndSeasonWBMinCalc.SetRCommand("instat_calculation$new") clsEndSeasonWBMinCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -584,6 +620,10 @@ Public Class dlgTransformClimatic clsReduceWBMinFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=1) clsReduceWBMinFunction1.AddParameter(".init", "0", iPosition:=2) + clsPMinWBMinFunction.SetRCommand(" ~ pmin") + clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMinFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) + clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) @@ -595,13 +635,17 @@ Public Class dlgTransformClimatic clsWBMinTailFunction.AddParameter("n", "-1", iPosition:=1) clsWBMinTailFunction1.SetRCommand("tail") - clsWBMinTailFunction1.AddParameter("x", ucrReceiverEvaporation.GetVariableNames(False), iPosition:=0) + clsWBMinTailFunction1.AddParameter("x", ucrReceiverEvap.GetVariableNames(False), iPosition:=0) clsWBMinTailFunction1.AddParameter("n", "-1", iPosition:=1) clsWBMinEvapOperator.SetOperation("-") clsWBMinEvapOperator.AddParameter("0", strRainMin, iPosition:=0) clsWBMinEvapOperator.AddParameter("value", "5", iPosition:=1) + clsWBMinTailFunction1.SetRCommand("tail") + clsWBMinTailFunction1.AddParameter("x", ucrReceiverEvap.GetVariableNames(False), iPosition:=0) + clsWBMinTailFunction1.AddParameter("n", "-1", iPosition:=1) + ' Water Balance max clsEndSeasonWBMaxCalc.SetRCommand("instat_calculation$new") clsEndSeasonWBMaxCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -613,6 +657,7 @@ Public Class dlgTransformClimatic clsEndSeasonWBMaxCalcSubCalcsList.SetRCommand("list") clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMaxCalc, iPosition:=0, bIncludeArgumentName:=False) + clsReduceWBMaxFunction.bToScriptAsRString = True clsReduceWBMaxFunction.SetPackageName("purrr") clsReduceWBMaxFunction.SetRCommand("accumulate") @@ -627,6 +672,23 @@ Public Class dlgTransformClimatic clsReduceWBMaxFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMaxTailFunction, iPosition:=1) clsReduceWBMaxFunction1.AddParameter(".init", "0", iPosition:=2) + clsPMinWBMaxFunction.SetRCommand(" ~ pmin") + clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) + + + clsWBMaxTailFunction.SetRCommand("tail") + clsWBMaxTailFunction.AddParameter("x", clsROperatorParameter:=clsWBMaxEvapOperator, iPosition:=0) + clsWBMaxTailFunction.AddParameter("n", "-1", iPosition:=1) + + clsWBMaxTailFunction1.SetRCommand("tail") + clsWBMaxTailFunction1.AddParameter("x", ucrReceiverEvap.GetVariableNames(False), iPosition:=0) + clsWBMaxTailFunction1.AddParameter("n", "-1", iPosition:=1) + + clsWBMaxEvapOperator.SetOperation("-") + clsWBMaxEvapOperator.AddParameter("0", strRainMax, iPosition:=0) + clsWBMaxEvapOperator.AddParameter("value", "5", iPosition:=1) + clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) @@ -777,8 +839,11 @@ Public Class dlgTransformClimatic ucrNudMgdd.AddAdditionalCodeParameterPair(clsModifiedLogicOperator, New RParameter("baseline", ucrNudMgdd.GetText, 1), iAdditionalPairNo:=1) ucrReceiverTMax.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmax", 0), iAdditionalPairNo:=2) ucrReceiverTMin.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmin", 1), iAdditionalPairNo:=2) + ucrInputEvaporation.AddAdditionalCodeParameterPair(clsWBMaxEvapOperator, New RParameter("value", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsWBMaxTailFunction1, New RParameter("x", 0), iAdditionalPairNo:=1) - ucrReceiverEvap.AddAdditionalCodeParameterPair(clsTailFunction, New RParameter("x", 1), iAdditionalPairNo:=1) + ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMinFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) + ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMaxFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) @@ -797,7 +862,7 @@ Public Class dlgTransformClimatic ucrInputSpellUpper.SetRCode(clsRRaindayUpperOperator, bReset) ' Water Balance - ucrReceiverEvap.SetRCode(clsAsNumericFunction, bReset) + ucrReceiverEvap.SetRCode(clsWBMinTailFunction1, bReset) 'Degree ucrReceiverTMin.SetRCode(clsDiurnalRangeOperator, bReset) @@ -812,9 +877,9 @@ Public Class dlgTransformClimatic ucrSaveColumn.SetRCode(clsRTransform, bReset) If bReset Then ucrChkGroupByYear.SetRCode(clsTransformManipulationsFunc, bReset) - ucrInputEvaporation.SetRCode(clsPMaxOperatorMax, bReset) + ucrInputEvaporation.SetRCode(clsWBMinEvapOperator, bReset) ucrPnlEvap.SetRCode(clsDummyFunction, bReset) - ucrChkWB.SetRCode(clsPMinFunctionMax, bReset) + 'ucrChkWB.SetRCode(clsPMinFunctionMax, bReset) ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If From 409a6af671a89eee06a37202876a122d9e5300d5 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 8 May 2024 15:04:34 +0100 Subject: [PATCH 14/21] change made --- instat/dlgTransformClimatic.vb | 406 +++++++++++++++++++++++++-------- 1 file changed, 308 insertions(+), 98 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 200b1327d6d..dd9cc2c7707 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -41,9 +41,34 @@ Public Class dlgTransformClimatic Private clsReduceWBMinFunction1 As New RFunction Private clsWBMinEvapOperator As New ROperator Private clsWBEvaporationMinFunction As New RFunction - + Private clsReduceWBMinFunction2 As New RFunction + Private clsEndSeasonRainMinCalc As New RFunction Private clsPMinWBMinFunction As New RFunction Private clsWBMinTailFunction1 As New RFunction + Private clsWBMinTailFunction As New RFunction + Private clsWBMinTailFunction2 As New RFunction + Private clsEndSeasonIsNaRain As New RFunction + Private clsEndSeasonConditionsOperator As New ROperator + Private clsEndSeasonConditionsFilterCalc As New RFunction + Private clsEndSeasonCombinationCalc As New RFunction + Private clsEndSeasonCombinationSubCalcList As New RFunction + Private clsEndSeasonFirstDoySummaryCalc As New RFunction + Private clsGroupByStationYearCalc As New RFunction + Private clsDoyFilterOperator As New ROperator + Private clsDayFromOperator As New ROperator + Private clsDayToOperator As New ROperator + Private clsDoyFilterCalcFromConvert As New RFunction + Private clsDoyFilterCalcFromList As New RFunction + Private clsEndSeasonConditionsFilterSubCalcsList As New RFunction + Private clsEndSeasonWBCalc As New RFunction + Private clsEndSeasonWBCalcSubCalcsList As New RFunction + Private clsEndSeasonWBConditionOperator As New ROperator + Private clsIfElseWBFunction As New RFunction + Private clsWBOperator As New ROperator + Private clsWBMinMaxOperator As New ROperator + Private clsIfElseRainMaxFunction As New RFunction + Private clsMinusMinOperator As New ROperator + 'Private clsMinusMaxOperator As New ROperator 'Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator ' Water Balance max @@ -56,7 +81,10 @@ Public Class dlgTransformClimatic Private clsPMaxFunction As New RFunction Private clsWBOperator1 As New ROperator Private clsWBMaxTailFunction1 As New RFunction - Private clsEndSeasonWBCalcSubCalcsList As New RFunction + Private clsReduceWBMaxFunction2 As New RFunction + Private clsIfElseRainMinFunction As New RFunction + Private clsEndSeasonCombinationManipulationList As New RFunction + Private clsDoyFilterCalc As New RFunction 'Degree Private clsDiurnalRangeOperator, clsTMeanAddOperator, clsTMeanDivideOperator As New ROperator @@ -69,6 +97,12 @@ Public Class dlgTransformClimatic Private strCurrDataName As String = "" Private strRainDay As String = "rain_day" + Private strRainMin As String = "rain_min" + Private strRainMax As String = "rain_max" + Private strWBMin As String = "wb_min" + Private strWBMax As String = "wb_max" + Private strWB As String = "wb" + Private strEvapReplaceNA As String = "evap_NA_as_value" 'TODO:This will be useful when we want to resize dialog at different instances! 'Private iReceiverMaxY As Integer @@ -370,6 +404,10 @@ Public Class dlgTransformClimatic End Sub Private Sub SetDefaults() + Dim strEndofSeason As String = "end_of_season_combined" + Dim strDoyFilter As String = "doy_filter" + Dim strConditionsFilter As String = "conditions_filter" + clsRTransform = New RFunction clsOverallTransformFunction = New RFunction clsTransformManipulationsFunc = New RFunction @@ -430,7 +468,17 @@ Public Class dlgTransformClimatic ucrSelectorTransform.Reset() ucrReceiverData.SetMeAsReceiver() + clsEndSeasonFirstDoySummaryCalc.Clear() + clsIfElseFirstDoyFunction.Clear() + clsIsNaFirstWB.Clear() + clsFirstDoyFunction.Clear() + clsFirstWBFunction.Clear() + clsGroupByStationYearCalc.Clear() + clsGroupByStationCalc.Clear() + clsEndSeasonWBCalc.Clear() + ' Water Balance min + clsEndSeasonRainMinCalc.Clear() clsEndSeasonWBMinCalc.Clear() clsEndSeasonWBMinCalcSubCalcsList.Clear() clsReduceWBMinFunction.Clear() @@ -439,7 +487,15 @@ Public Class dlgTransformClimatic clsWBEvaporationMinFunction.Clear() clsPMaxFunction.Clear() clsPMinWBMinFunction.Clear() + clsWBMinTailFunction.Clear() clsWBMinTailFunction1.Clear() + clsWBMinTailFunction2.Clear() + clsIfElseRainMinFunction.Clear() + clsEndSeasonCombinationManipulationList.Clear() + clsEndSeasonConditionsFilterSubCalcsList.Clear() + clsEndSeasonWBConditionOperator.Clear() + clsIfElseWBFunction.Clear() + clsWBMinMaxOperator.Clear() ' Water Balance max clsEndSeasonWBMaxCalc.Clear() @@ -448,10 +504,20 @@ Public Class dlgTransformClimatic clsReduceWBMaxFunction1.Clear() clsWBMaxEvapOperator.Clear() clsWBOperator1.Clear() - clsWBOperator2.Clear() clsWBMaxTailFunction1.Clear() clsPMinWBMaxFunction.Clear() clsEndSeasonWBCalcSubCalcsList.Clear() + clsReduceWBMaxFunction2.Clear() + clsReduceWBMinFunction2.Clear() + clsEndSeasonConditionsOperator.Clear() + clsEndSeasonConditionsFilterCalc.Clear() + clsEndSeasonCombinationCalc.Clear() + clsDoyFilterCalc.Clear() + clsDoyFilterOperator.Clear() + clsDayFromOperator.Clear() + clsDayToOperator.Clear() + clsDoyFilterCalcFromConvert.Clear() + clsDoyFilterCalcFromList.Clear() ' Count and Spells: Rainday clsRRainday.SetRCommand("instat_calculation$new") @@ -576,8 +642,91 @@ Public Class dlgTransformClimatic 'clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) 'clsTailFunction.SetRCommand("tail") - 'clsTailFunction.AddParameter("n", "-1", iPosition:=1) + 'clsTailFunction.AddParameter("n", "-1", iPosition:=1 + clsGroupByStationYearCalc.SetRCommand("instat_calculation$new") + clsGroupByStationYearCalc.AddParameter("type", Chr(34) & "by" & Chr(34), iPosition:=0) + clsGroupByStationYearCalc.SetAssignTo("grouping_by_station_year") + + clsEndSeasonCombinationSubCalcList.SetRCommand("list") + clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) + + clsEndSeasonCombinationCalc.SetRCommand("instat_calculation$new") + clsEndSeasonCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) + clsEndSeasonCombinationCalc.AddParameter("manipulations", clsRFunctionParameter:=clsEndSeasonCombinationManipulationList, iPosition:=1) + clsEndSeasonCombinationCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombinationSubCalcList, iPosition:=2) + clsEndSeasonCombinationCalc.SetAssignTo(strEndofSeason) + + clsDoyFilterOperator.SetOperation("&") + clsDoyFilterOperator.AddParameter("from_operator", clsROperatorParameter:=clsDayFromOperator, iPosition:=0) + clsDoyFilterOperator.AddParameter("to_operator", clsROperatorParameter:=clsDayToOperator, iPosition:=1) + clsDoyFilterOperator.bBrackets = False + clsDoyFilterOperator.bToScriptAsRString = True + + clsDayFromOperator.SetOperation(">=") + clsDayFromOperator.AddParameter("from", 1, iPosition:=1) + + clsDayToOperator.SetOperation("<=") + clsDayToOperator.AddParameter("to", 366, iPosition:=1) + + clsDoyFilterCalcFromConvert.SetRCommand("calc_from_convert") + clsDoyFilterCalcFromConvert.AddParameter("x", clsRFunctionParameter:=clsDoyFilterCalcFromList, iPosition:=0) + + clsDoyFilterCalcFromList.SetRCommand("list") + + clsDoyFilterCalc.SetRCommand("instat_calculation$new") + clsDoyFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) + clsDoyFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsDoyFilterOperator, iPosition:=1) + clsDoyFilterCalc.AddParameter("calculated_from", clsRFunctionParameter:=clsDoyFilterCalcFromConvert, iPosition:=2) + clsDoyFilterCalc.SetAssignTo(strDoyFilter) + + clsEndSeasonCombinationManipulationList.SetRCommand("list") + clsEndSeasonCombinationManipulationList.AddParameter("manip1", clsRFunctionParameter:=clsEndSeasonConditionsFilterCalc, bIncludeArgumentName:=False, iPosition:=0) + clsEndSeasonCombinationManipulationList.AddParameter("manip2", clsRFunctionParameter:=clsGroupByStationYearCalc, bIncludeArgumentName:=False, iPosition:=1) + clsEndSeasonCombinationManipulationList.AddParameter("manip3", clsRFunctionParameter:=clsDoyFilterCalc, bIncludeArgumentName:=False, iPosition:=2) + + + + clsEndSeasonIsNaRain.SetRCommand("is.na") + + clsEndSeasonConditionsFilterCalc.SetRCommand("instat_calculation$new") + clsEndSeasonConditionsFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) + clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsEndSeasonConditionsOperator, iPosition:=1) + clsEndSeasonConditionsFilterCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonConditionsFilterSubCalcsList, iPosition:=4) + clsEndSeasonConditionsFilterCalc.SetAssignTo(strConditionsFilter) + + clsEndSeasonConditionsFilterSubCalcsList.SetRCommand("list") + clsEndSeasonConditionsFilterSubCalcsList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonWBCalc, iPosition:=0, bIncludeArgumentName:=False) + + clsEndSeasonConditionsOperator.bToScriptAsRString = True + clsEndSeasonConditionsOperator.SetOperation("|") + clsEndSeasonConditionsOperator.AddParameter("0", clsROperatorParameter:=clsEndSeasonWBConditionOperator, iPosition:=0) + clsEndSeasonConditionsOperator.AddParameter("1", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=1) + + clsEndSeasonWBConditionOperator.SetOperation("<=") + clsEndSeasonWBConditionOperator.AddParameter("0", strWB, iPosition:=0) + clsEndSeasonWBConditionOperator.AddParameter("1", "0.5", iPosition:=1) + + clsEndSeasonWBCalc.SetRCommand("instat_calculation$new") + clsEndSeasonWBCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonWBCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseWBFunction, iPosition:=1) + clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & strWB & Chr(34), iPosition:=2) + clsEndSeasonWBCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBCalcSubCalcsList, iPosition:=3) + clsEndSeasonWBCalc.SetAssignTo(strWB) + + clsIfElseWBFunction.bToScriptAsRString = True + clsIfElseWBFunction.SetRCommand("ifelse") + clsIfElseWBFunction.AddParameter("test", clsROperatorParameter:=clsWBOperator, iPosition:=0) + clsIfElseWBFunction.AddParameter("yes", "NA", iPosition:=1) + clsIfElseWBFunction.AddParameter("no", strWBMin, iPosition:=2) + + clsWBOperator.SetOperation("|") + clsWBOperator.AddParameter("0", clsROperatorParameter:=clsWBMinMaxOperator, iPosition:=0) + clsWBOperator.AddParameter("1", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=1) + + clsWBMinMaxOperator.SetOperation("!=") + clsWBMinMaxOperator.AddParameter("0", strWBMin, iPosition:=0) + clsWBMinMaxOperator.AddParameter("1", strWBMax, iPosition:=1) clsWBOperator1.SetOperation("-") clsWBOperator1.AddParameter("left", "..1 + ..2", iPosition:=0) @@ -589,11 +738,14 @@ Public Class dlgTransformClimatic clsWBEvaporationMinFunction.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) clsWBEvaporationMinFunction.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) - clsPMaxFunction.SetRCommand("pmax") clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) clsPMaxFunction.AddParameter("1", "0", bIncludeArgumentName:=False) + clsIfElseRainMaxFunction.bToScriptAsRString = True + clsIfElseRainMaxFunction.SetRCommand("ifelse") + clsIfElseRainMaxFunction.AddParameter("test", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=0) + clsIfElseRainMaxFunction.AddParameter("yes", 100, iPosition:=0) ' Water Balance min clsEndSeasonWBMinCalc.SetRCommand("instat_calculation$new") @@ -603,6 +755,19 @@ Public Class dlgTransformClimatic clsEndSeasonWBMinCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBMinCalcSubCalcsList, iPosition:=3) clsEndSeasonWBMinCalc.SetAssignTo(strWBMin) + + + clsEndSeasonRainMinCalc.SetRCommand("instat_calculation$new") + clsEndSeasonRainMinCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonRainMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseRainMinFunction, iPosition:=1) + clsEndSeasonRainMinCalc.AddParameter("result_name", Chr(34) & strRainMin & Chr(34), iPosition:=2) + clsEndSeasonRainMinCalc.SetAssignTo(strRainMin) + + clsIfElseRainMinFunction.bToScriptAsRString = True + clsIfElseRainMinFunction.SetRCommand("ifelse") + clsIfElseRainMinFunction.AddParameter("test", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=0) + clsIfElseRainMinFunction.AddParameter("yes", "0", iPosition:=1) + clsEndSeasonWBMinCalcSubCalcsList.SetRCommand("list") clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMinCalc, iPosition:=0, bIncludeArgumentName:=False) @@ -620,9 +785,18 @@ Public Class dlgTransformClimatic clsReduceWBMinFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction, iPosition:=1) clsReduceWBMinFunction1.AddParameter(".init", "0", iPosition:=2) + clsReduceWBMinFunction2.bToScriptAsRString = True + clsReduceWBMinFunction2.SetPackageName("purrr") + clsReduceWBMinFunction2.SetRCommand("accumulate") + clsReduceWBMinFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMinFunction, iPosition:=0) + clsReduceWBMinFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction2, iPosition:=1) + clsReduceWBMinFunction2.AddParameter(".init", "0", iPosition:=2) + + clsWBMinTailFunction2.SetRCommand("tail") + clsWBMinTailFunction2.AddParameter("x", clsROperatorParameter:=clsMinusMinOperator, iPosition:=0, bIncludeArgumentName:=False) + clsWBMinTailFunction2.AddParameter("n", "-1", iPosition:=1) + clsPMinWBMinFunction.SetRCommand(" ~ pmin") - clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) - clsPMinWBMinFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") @@ -642,10 +816,6 @@ Public Class dlgTransformClimatic clsWBMinEvapOperator.AddParameter("0", strRainMin, iPosition:=0) clsWBMinEvapOperator.AddParameter("value", "5", iPosition:=1) - clsWBMinTailFunction1.SetRCommand("tail") - clsWBMinTailFunction1.AddParameter("x", ucrReceiverEvap.GetVariableNames(False), iPosition:=0) - clsWBMinTailFunction1.AddParameter("n", "-1", iPosition:=1) - ' Water Balance max clsEndSeasonWBMaxCalc.SetRCommand("instat_calculation$new") clsEndSeasonWBMaxCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) @@ -672,9 +842,16 @@ Public Class dlgTransformClimatic clsReduceWBMaxFunction1.AddParameter(".x", clsRFunctionParameter:=clsWBMaxTailFunction, iPosition:=1) clsReduceWBMaxFunction1.AddParameter(".init", "0", iPosition:=2) + clsReduceWBMaxFunction2.bToScriptAsRString = True + clsReduceWBMaxFunction2.SetPackageName("purrr") + clsReduceWBMaxFunction2.SetRCommand("accumulate") + clsReduceWBMaxFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinWBMaxFunction, iPosition:=0) + clsReduceWBMaxFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMaxTailFunction2, iPosition:=1) + clsReduceWBMaxFunction2.AddParameter(".init", "0", iPosition:=2) + clsPMinWBMaxFunction.SetRCommand(" ~ pmin") - clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) - clsPMinWBMaxFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) + 'clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + 'clsPMinWBMaxFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) clsWBMaxTailFunction.SetRCommand("tail") @@ -690,10 +867,6 @@ Public Class dlgTransformClimatic clsWBMaxEvapOperator.AddParameter("value", "5", iPosition:=1) - clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) - clsEndSeasonWBCalcSubCalcsList.AddParameter("1", clsRFunctionParameter:=clsEndSeasonWBMaxCalc, iPosition:=1, bIncludeArgumentName:=False) - ' Degree clsDiurnalRangeOperator.SetOperation("-") @@ -811,18 +984,22 @@ Public Class dlgTransformClimatic End Sub Private Sub SetRCodeForControls(bReset As Boolean) + 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsDayFromOperator, New RParameter("doy", 0), iAdditionalPairNo:=1) + 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsLastDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=2) + 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsFirstDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=3) + ucrReceiverData.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("x", 0, False), iAdditionalPairNo:=1) ucrReceiverData.AddAdditionalCodeParameterPair(clsReplaceNAasElement, New RParameter("element", 0, False), iAdditionalPairNo:=2) ucrReceiverData.AddAdditionalCodeParameterPair(clsRRaindayUpperOperator, New RParameter("rain", 0), iAdditionalPairNo:=3) ucrReceiverData.AddAdditionalCodeParameterPair(clsRRaindayLowerOperator, New RParameter("rain", 0), iAdditionalPairNo:=4) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction, New RParameter("replace_na", 1, False), iAdditionalPairNo:=5) + ucrReceiverData.AddAdditionalCodeParameterPair(clsIfElseRainMinFunction, New RParameter("no", 2), iAdditionalPairNo:=5) ucrReceiverData.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=6) ucrReceiverData.AddAdditionalCodeParameterPair(clsLessThanOperator, New RParameter("rain", 0), iAdditionalPairNo:=7) ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeSum, New RParameter("x", 0, False), iAdditionalPairNo:=8) ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMaximum, New RParameter("x", 0, False), iAdditionalPairNo:=9) ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=10) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction1, New RParameter("replace_na", 1, False), iAdditionalPairNo:=11) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRWaterBalanceFunction2, New RParameter("replace_na", 1, False), iAdditionalPairNo:=12) + ucrReceiverData.AddAdditionalCodeParameterPair(clsEndSeasonIsNaRain, New RParameter("x", 0), iAdditionalPairNo:=11) + ucrReceiverData.AddAdditionalCodeParameterPair(clsIfElseRainMaxFunction, New RParameter("no", 2), iAdditionalPairNo:=12) ucrNudSumOver.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrInputSum.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("fun", 2), iAdditionalPairNo:=1) ucrInputSpellUpper.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("max", 1), iAdditionalPairNo:=1) @@ -844,7 +1021,8 @@ Public Class dlgTransformClimatic ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMinFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMaxFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) - + ucrReceiverDOY.SetRCode(clsDayToOperator, bReset) + ucrNudWBLessThan.SetRCode(clsEndSeasonWBConditionOperator, bReset) ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) ucrInputSum.SetRCode(clsRMovingFunction, bReset) @@ -883,6 +1061,10 @@ Public Class dlgTransformClimatic ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If + + 'ucrChkEndofSeasonDoy.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) + 'ucrChkEndofSeasonDate.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) + 'ucrChkEndofSeasonOccurence.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) End Sub Private Sub TestOkEnabled() @@ -979,9 +1161,11 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("calculated_from") clsTransformCheck = clsRollConsecutiveSumFunction ElseIf rdoWaterBalance.Checked Then - clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) + 'clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) clsRTransform.RemoveParameterByName("sub_calculations") - clsTransformCheck = clsRTransform + clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndSeasonCombinationCalc) + clsFirstOrLastFunction = clsFirstDoyFunction + 'clsTransformCheck = clsRTransform ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") @@ -1309,55 +1493,56 @@ Public Class dlgTransformClimatic End If End Sub - 'Private Sub ReduceWaterBalance() - ' If rdoWaterBalance.Checked Then - ' clsPMaxFunctionMax.RemoveParameterByName("wb") - ' clsPMaxOperatorMax.RemoveParameterByName("first") - ' clsPMaxOperatorMax.RemoveParameterByName("evaporation.value") - ' clsPMaxFunctionMax.RemoveParameterByName("calculation") - ' clsWBEvaporation.RemoveParameterByName("evaporation_value") - ' clsWBEvaporation.RemoveParameterByName("value") - ' clsPMinFunctionMax.RemoveParameterByName("capacity") - ' If rdoEvapValue.Checked Then - ' ucrReceiverData.SetMeAsReceiver() - ' clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")") - ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) - ' If ucrChkWB.Checked Then - ' clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - ' clsWBEvaporation.AddParameter("evaporation_value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) - ' Else - ' clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - ' clsPMaxOperatorMax.AddParameter("evaporation.value", ucrInputEvaporation.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) - ' End If - ' Else - ' ucrReceiverEvap.SetMeAsReceiver() - ' clsRTransform.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ", " & strCurrDataName & "=" & ucrReceiverEvap.GetVariableNames & ")") - ' If ucrChkWB.Checked Then - ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction1, iPosition:=1) - ' clsWBEvaporation.AddParameter("frac", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsWBEvaporation.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) - ' clsWBEvaporation.AddParameter("value", "..3", iPosition:=3, bIncludeArgumentName:=False) - ' clsPMaxFunctionMax.AddParameter("wb", clsROperatorParameter:=clsWBOperator, iPosition:=0, bIncludeArgumentName:=False) - ' clsReduceOpEvapValue1.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) - ' clsReduceOpEvapValue1.AddParameter("right", ucrReceiverEvap.GetVariableNames(False), iPosition:=1, bIncludeArgumentName:=False) - ' clsRWaterBalanceFunction1.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue1, iPosition:=1, bIncludeArgumentName:=False) - ' Else - ' clsPMinFunctionMax.AddParameter("capacity", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - ' clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction2, iPosition:=1) - ' clsPMaxOperatorMax.AddParameter("first", "..1 + ..2", iPosition:=0) - ' clsReduceOpEvapValue2.AddParameter("left", ucrReceiverData.GetVariableNames(False), iPosition:=0, bIncludeArgumentName:=False) - ' clsReduceOpEvapValue2.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) - ' clsRWaterBalanceFunction2.AddParameter("replace_na", clsROperatorParameter:=clsReduceOpEvapValue2, iPosition:=1, bIncludeArgumentName:=False) - ' clsPMaxFunctionMax.AddParameter("calculation", clsROperatorParameter:=clsPMaxOperatorMax, iPosition:=0, bIncludeArgumentName:=False) - ' End If - ' End If + Private Sub RainfallChange() + clsEndRainsRollingSumCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) + clsEndSeasonRainMinCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) + clsEndSeasonRainMaxCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) + End Sub + + 'Private Sub ucrReceiverStationYear_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverYear.ControlValueChanged, ucrReceiverStation.ControlValueChanged + ' GroupingBy() + 'End Sub + + 'Private Sub ucrReceiverDOY_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDOY.ControlValueChanged, ucrSelectorForWaterBalance.ControlValueChanged + ' If Not ucrReceiverDOY.IsEmpty Then + ' clsDoyFilterCalcFromList.AddParameter(ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strParameterValue:=ucrReceiverDOY.GetVariableNames(), iPosition:=0) + ' Else + ' clsDoyFilterCalcFromList.RemoveParameterByName(ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text) ' End If + ' UpdateDayFilterPreview() 'End Sub + 'Private Sub ucrSelectorForSpells_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverRainfall.ControlContentsChanged, ucrSelectorForWaterBalance.ControlContentsChanged, ucrReceiverDOY.ControlValueChanged + ' strCurrDataName = Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.SelectedItem & Chr(34) + ' GroupingBy() + ' DayChange() + ' RainfallChange() + 'End Sub + + 'Private Sub ucrSelectorForWaterBalance_DataFrameChanged() Handles ucrSelectorForWaterBalance.DataFrameChanged + ' clsDoyFilterCalcFromList.ClearParameters() + 'End Sub + + Private Sub GroupingBy() + If Not ucrReceiverStation.IsEmpty AndAlso Not ucrReceiverYear.IsEmpty Then + clsGroupByStationYearCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverStation.GetVariableNames & "," & strCurrDataName & "=" & ucrReceiverYear.GetVariableNames & ")", iPosition:=3) + Else + clsGroupByStationYearCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverYear.GetVariableNames & ")", iPosition:=3) + End If + If Not ucrReceiverStation.IsEmpty Then + clsGroupByStationCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverStation.GetVariableNames & ")", iPosition:=2) + Else + End If + End Sub + + Private Sub UpdateDayFilterPreview() + If ucrReceiverDOY.IsEmpty Then + ucrInputFilterPreview.SetName("") + Else + ucrInputFilterPreview.SetName(clsDoyFilterOperator.ToScript()) + End If + End Sub + Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged ReduceWaterBalance() End Sub @@ -1379,6 +1564,7 @@ Public Class dlgTransformClimatic End Sub Private Sub ucrSelectorTransform_DataFrameChanged() Handles ucrSelectorTransform.DataFrameChanged + clsDoyFilterCalcFromList.ClearParameters() AutoFill() TestOkEnabled() End Sub @@ -1394,60 +1580,84 @@ Public Class dlgTransformClimatic Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then + clsPMaxFunction.RemoveParameterByName("0") + clsPMaxFunction.RemoveParameterByName("0") + clsPMinWBMaxFunction.RemoveParameterByName("1") + clsPMinWBMinFunction.RemoveParameterByName("1") + clsWBMinEvapOperator.RemoveParameterByName("variable") + clsWBMaxEvapOperator.RemoveParameterByName("variable") + clsWBMaxEvapOperator.RemoveParameterByName("value") + clsWBMinEvapOperator.RemoveParameterByName("value") + clsPMaxFunction.RemoveParameterByName("wb") + clsPMaxFunction.RemoveParameterByName("wb") If rdoEvapValue.Checked Then clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction, iPosition:=1) clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction, iPosition:=1) - clsWBMinEvapOperator.RemoveParameterByName("variable") - clsWBMaxEvapOperator.RemoveParameterByName("variable") If ucrChkWB.Checked Then clsWBEvaporationMinFunction.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporationMinFunction.AddParameter("yes", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) clsWBEvaporationMinFunction.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=3, bIncludeArgumentName:=False) clsPMaxFunction.AddParameter("wb", clsROperatorParameter:=clsWBOperator1, iPosition:=0, bIncludeArgumentName:=False) - clsPMaxFunction.RemoveParameterByName("0") - clsPMaxFunction.RemoveParameterByName("0") - clsWBMaxEvapOperator.RemoveParameterByName("value") - clsWBMinEvapOperator.RemoveParameterByName("value") - clsPMinWBMaxFunction.RemoveParameterByName("1") - clsPMinWBMinFunction.RemoveParameterByName("1") + clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) Else - clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) - clsPMaxFunction.RemoveParameterByName("wb") - clsPMaxFunction.RemoveParameterByName("wb") clsWBMaxEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) clsWBMinEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) - clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) - clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) + + clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + + clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) End If Else ucrReceiverEvap.SetMeAsReceiver() - clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction1, iPosition:=1) - clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction1, iPosition:=1) - clsWBMinEvapOperator.RemoveParameterByName("variable") - clsWBMaxEvapOperator.RemoveParameterByName("variable") If ucrChkWB.Checked Then + clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction1, iPosition:=1) + clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction1, iPosition:=1) clsWBEvaporationMinFunction.AddParameter("WB_evap_value", ucrNudWB.GetText(), iPosition:=1, bIncludeArgumentName:=False) clsWBEvaporationMinFunction.AddParameter("yes", ucrNudWBCapacity.GetText(), iPosition:=2, bIncludeArgumentName:=False) clsWBEvaporationMinFunction.AddParameter("value", "..3", bIncludeArgumentName:=False, iPosition:=3) clsReduceWBMinFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMinTailFunction1, iPosition:=1) clsReduceWBMaxFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMaxTailFunction1, iPosition:=1) clsPMaxFunction.AddParameter("wb", clsROperatorParameter:=clsWBOperator1, iPosition:=0, bIncludeArgumentName:=False) - clsPMaxFunction.RemoveParameterByName("0") - clsPMaxFunction.RemoveParameterByName("0") - clsWBMaxEvapOperator.RemoveParameterByName("value") - clsWBMinEvapOperator.RemoveParameterByName("value") - clsPMinWBMaxFunction.RemoveParameterByName("1") - clsPMinWBMinFunction.RemoveParameterByName("1") + clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) Else + clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction2, iPosition:=1) + clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction2, iPosition:=1) clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) - clsPMaxFunction.RemoveParameterByName("wb") - clsPMaxFunction.RemoveParameterByName("wb") - clsReduceWBMinFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMinTailFunction1, iPosition:=1) - clsReduceWBMaxFunction1.AddParameter(".y", clsRFunctionParameter:=clsWBMaxTailFunction1, iPosition:=1) - clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) - clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1) + clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) + clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) End If End If End If End Sub + + 'Private Sub ucrChkEndofSeasonOccurence_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonOccurence.ControlValueChanged + ' If ucrChkEndofSeasonOccurence.Checked Then + ' clsEndSeasonCombinationSubCalcList.AddParameter("sub3", clsRFunctionParameter:=clsEndSeasonStatusSummaryCalc, bIncludeArgumentName:=False, iPosition:=2) + ' Else + ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub3") + ' End If + 'End Sub + + 'Private Sub ucrChkEndofSeasonDoy_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonDoy.ControlValueChanged + ' If ucrChkEndofSeasonDoy.Checked Then + ' clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) + ' Else + ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub1") + ' End If + 'End Sub + + 'Private Sub ucrChkEndofSeasonDate_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonDate.ControlValueChanged + ' If ucrChkEndofSeasonDate.Checked Then + ' clsEndSeasonCombinationSubCalcList.AddParameter("sub2", clsRFunctionParameter:=clsEndSeasonFirstDateSummaryCalc, bIncludeArgumentName:=False, iPosition:=1) + ' Else + ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub2") + ' End If + 'End Sub End Class \ No newline at end of file From 7e6de92ef1d5621305e6d974cd92ceb00b94f8ed Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Fri, 10 May 2024 10:29:50 +0100 Subject: [PATCH 15/21] Change made --- instat/dlgTransformClimatic.vb | 188 ++++++++++++--------------------- 1 file changed, 67 insertions(+), 121 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index dd9cc2c7707..90b8c59265e 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -68,8 +68,11 @@ Public Class dlgTransformClimatic Private clsWBMinMaxOperator As New ROperator Private clsIfElseRainMaxFunction As New RFunction Private clsMinusMinOperator As New ROperator - 'Private clsMinusMaxOperator As New ROperator - 'Private clsPMaxOperatorMax, clsReduceOpEvapValue2, clsReduceOpEvapValue1, clsReduceOpEvapValue, clsWBOperator As New ROperator + Private clsMinusMaxOperator As New ROperator + Private clsEndSeasonRainMaxCalc As New RFunction + Private clsWBMaxTailFunction2 As New RFunction + Private clsWBMaxTailFunction As New RFunction + Private clsGroupByStationCalc As New RFunction ' Water Balance max Private clsEndSeasonWBMaxCalc As New RFunction @@ -404,9 +407,9 @@ Public Class dlgTransformClimatic End Sub Private Sub SetDefaults() - Dim strEndofSeason As String = "end_of_season_combined" - Dim strDoyFilter As String = "doy_filter" - Dim strConditionsFilter As String = "conditions_filter" + 'Dim strEndofSeason As String = "end_of_season_combined" + 'Dim strDoyFilter As String = "doy_filter" + 'Dim strConditionsFilter As String = "conditions_filter" clsRTransform = New RFunction clsOverallTransformFunction = New RFunction @@ -469,10 +472,7 @@ Public Class dlgTransformClimatic ucrReceiverData.SetMeAsReceiver() clsEndSeasonFirstDoySummaryCalc.Clear() - clsIfElseFirstDoyFunction.Clear() - clsIsNaFirstWB.Clear() - clsFirstDoyFunction.Clear() - clsFirstWBFunction.Clear() + clsGroupByStationYearCalc.Clear() clsGroupByStationCalc.Clear() clsEndSeasonWBCalc.Clear() @@ -496,6 +496,9 @@ Public Class dlgTransformClimatic clsEndSeasonWBConditionOperator.Clear() clsIfElseWBFunction.Clear() clsWBMinMaxOperator.Clear() + clsEndSeasonRainMaxCalc.Clear() + clsWBMaxTailFunction2.Clear() + clsWBMaxTailFunction.Clear() ' Water Balance max clsEndSeasonWBMaxCalc.Clear() @@ -643,6 +646,10 @@ Public Class dlgTransformClimatic 'clsTailFunction.SetRCommand("tail") 'clsTailFunction.AddParameter("n", "-1", iPosition:=1 + clsGroupByStationCalc.SetRCommand("instat_calculation$new") + clsGroupByStationCalc.AddParameter("type", Chr(34) & "by" & Chr(34), iPosition:=0) + clsGroupByStationCalc.SetAssignTo("grouping_by_station") + clsGroupByStationYearCalc.SetRCommand("instat_calculation$new") clsGroupByStationYearCalc.AddParameter("type", Chr(34) & "by" & Chr(34), iPosition:=0) clsGroupByStationYearCalc.SetAssignTo("grouping_by_station_year") @@ -650,11 +657,11 @@ Public Class dlgTransformClimatic clsEndSeasonCombinationSubCalcList.SetRCommand("list") clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) - clsEndSeasonCombinationCalc.SetRCommand("instat_calculation$new") - clsEndSeasonCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) - clsEndSeasonCombinationCalc.AddParameter("manipulations", clsRFunctionParameter:=clsEndSeasonCombinationManipulationList, iPosition:=1) - clsEndSeasonCombinationCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombinationSubCalcList, iPosition:=2) - clsEndSeasonCombinationCalc.SetAssignTo(strEndofSeason) + 'clsEndSeasonCombinationCalc.SetRCommand("instat_calculation$new") + 'clsEndSeasonCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) + 'clsEndSeasonCombinationCalc.AddParameter("manipulations", clsRFunctionParameter:=clsEndSeasonCombinationManipulationList, iPosition:=1) + 'clsEndSeasonCombinationCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombinationSubCalcList, iPosition:=2) + 'clsEndSeasonCombinationCalc.SetAssignTo(strEndofSeason) clsDoyFilterOperator.SetOperation("&") clsDoyFilterOperator.AddParameter("from_operator", clsROperatorParameter:=clsDayFromOperator, iPosition:=0) @@ -673,26 +680,24 @@ Public Class dlgTransformClimatic clsDoyFilterCalcFromList.SetRCommand("list") - clsDoyFilterCalc.SetRCommand("instat_calculation$new") - clsDoyFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) - clsDoyFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsDoyFilterOperator, iPosition:=1) - clsDoyFilterCalc.AddParameter("calculated_from", clsRFunctionParameter:=clsDoyFilterCalcFromConvert, iPosition:=2) - clsDoyFilterCalc.SetAssignTo(strDoyFilter) + 'clsDoyFilterCalc.SetRCommand("instat_calculation$new") + 'clsDoyFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) + 'clsDoyFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsDoyFilterOperator, iPosition:=1) + 'clsDoyFilterCalc.AddParameter("calculated_from", clsRFunctionParameter:=clsDoyFilterCalcFromConvert, iPosition:=2) + 'clsDoyFilterCalc.SetAssignTo(strDoyFilter) clsEndSeasonCombinationManipulationList.SetRCommand("list") clsEndSeasonCombinationManipulationList.AddParameter("manip1", clsRFunctionParameter:=clsEndSeasonConditionsFilterCalc, bIncludeArgumentName:=False, iPosition:=0) clsEndSeasonCombinationManipulationList.AddParameter("manip2", clsRFunctionParameter:=clsGroupByStationYearCalc, bIncludeArgumentName:=False, iPosition:=1) clsEndSeasonCombinationManipulationList.AddParameter("manip3", clsRFunctionParameter:=clsDoyFilterCalc, bIncludeArgumentName:=False, iPosition:=2) - - clsEndSeasonIsNaRain.SetRCommand("is.na") - clsEndSeasonConditionsFilterCalc.SetRCommand("instat_calculation$new") - clsEndSeasonConditionsFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) - clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsEndSeasonConditionsOperator, iPosition:=1) - clsEndSeasonConditionsFilterCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonConditionsFilterSubCalcsList, iPosition:=4) - clsEndSeasonConditionsFilterCalc.SetAssignTo(strConditionsFilter) + 'clsEndSeasonConditionsFilterCalc.SetRCommand("instat_calculation$new") + 'clsEndSeasonConditionsFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) + 'clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsEndSeasonConditionsOperator, iPosition:=1) + 'clsEndSeasonConditionsFilterCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonConditionsFilterSubCalcsList, iPosition:=4) + 'clsEndSeasonConditionsFilterCalc.SetAssignTo(strConditionsFilter) clsEndSeasonConditionsFilterSubCalcsList.SetRCommand("list") clsEndSeasonConditionsFilterSubCalcsList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonWBCalc, iPosition:=0, bIncludeArgumentName:=False) @@ -710,8 +715,10 @@ Public Class dlgTransformClimatic clsEndSeasonWBCalc.SetRCommand("instat_calculation$new") clsEndSeasonWBCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) clsEndSeasonWBCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseWBFunction, iPosition:=1) + clsEndSeasonWBCalc.AddParameter("save", "2", iPosition:=2) + clsEndSeasonWBCalc.AddParameter("adjacent_column", ucrReceiverData.GetVariableNames(), iPosition:=3) clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & strWB & Chr(34), iPosition:=2) - clsEndSeasonWBCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBCalcSubCalcsList, iPosition:=3) + clsEndSeasonWBCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBCalcSubCalcsList, iPosition:=5) clsEndSeasonWBCalc.SetAssignTo(strWB) clsIfElseWBFunction.bToScriptAsRString = True @@ -769,7 +776,7 @@ Public Class dlgTransformClimatic clsIfElseRainMinFunction.AddParameter("yes", "0", iPosition:=1) clsEndSeasonWBMinCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMinCalc, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", Chr(34) & strRainMin & Chr(34), iPosition:=0, bIncludeArgumentName:=False) clsReduceWBMinFunction.bToScriptAsRString = True clsReduceWBMinFunction.SetPackageName("purrr") @@ -792,6 +799,11 @@ Public Class dlgTransformClimatic clsReduceWBMinFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction2, iPosition:=1) clsReduceWBMinFunction2.AddParameter(".init", "0", iPosition:=2) + clsMinusMinOperator = New ROperator + clsMinusMinOperator.SetOperation("-") + clsMinusMinOperator.AddParameter("left", strRainMin, iPosition:=0, bIncludeArgumentName:=False) + clsMinusMinOperator.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) + clsWBMinTailFunction2.SetRCommand("tail") clsWBMinTailFunction2.AddParameter("x", clsROperatorParameter:=clsMinusMinOperator, iPosition:=0, bIncludeArgumentName:=False) clsWBMinTailFunction2.AddParameter("n", "-1", iPosition:=1) @@ -824,9 +836,23 @@ Public Class dlgTransformClimatic clsEndSeasonWBMaxCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBMaxCalcSubCalcsList, iPosition:=3) clsEndSeasonWBMaxCalc.SetAssignTo(strWBMax) + clsEndSeasonRainMaxCalc.SetRCommand("instat_calculation$new") + clsEndSeasonRainMaxCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) + clsEndSeasonRainMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseRainMaxFunction, iPosition:=1) + clsEndSeasonRainMaxCalc.AddParameter("result_name", Chr(34) & strRainMax & Chr(34), iPosition:=2) + clsEndSeasonRainMaxCalc.SetAssignTo(strRainMax) + clsEndSeasonWBMaxCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonRainMaxCalc, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", Chr(34) & strRainMax & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + + clsMinusMaxOperator = New ROperator + clsMinusMaxOperator.SetOperation("-") + clsMinusMaxOperator.AddParameter("left", strRainMax, iPosition:=0, bIncludeArgumentName:=False) + clsMinusMaxOperator.AddParameter("right", clsRFunctionParameter:=clsAsNumericFunction, iPosition:=1, bIncludeArgumentName:=False) + clsWBMaxTailFunction2.SetRCommand("tail") + clsWBMaxTailFunction2.AddParameter("x", clsROperatorParameter:=clsMinusMaxOperator, iPosition:=0) + clsWBMaxTailFunction2.AddParameter("n", "-1", iPosition:=1) clsReduceWBMaxFunction.bToScriptAsRString = True clsReduceWBMaxFunction.SetPackageName("purrr") @@ -850,9 +876,6 @@ Public Class dlgTransformClimatic clsReduceWBMaxFunction2.AddParameter(".init", "0", iPosition:=2) clsPMinWBMaxFunction.SetRCommand(" ~ pmin") - 'clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) - 'clsPMinWBMaxFunction.AddParameter("1", iCapacityDefault, iPosition:=1, bIncludeArgumentName:=False) - clsWBMaxTailFunction.SetRCommand("tail") clsWBMaxTailFunction.AddParameter("x", clsROperatorParameter:=clsWBMaxEvapOperator, iPosition:=0) @@ -866,8 +889,6 @@ Public Class dlgTransformClimatic clsWBMaxEvapOperator.AddParameter("0", strRainMax, iPosition:=0) clsWBMaxEvapOperator.AddParameter("value", "5", iPosition:=1) - - ' Degree clsDiurnalRangeOperator.SetOperation("-") clsDiurnalRangeOperator.bToScriptAsRString = True @@ -984,10 +1005,6 @@ Public Class dlgTransformClimatic End Sub Private Sub SetRCodeForControls(bReset As Boolean) - 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsDayFromOperator, New RParameter("doy", 0), iAdditionalPairNo:=1) - 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsLastDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=2) - 'ucrReceiverDOY.AddAdditionalCodeParameterPair(clsFirstDoyFunction, New RParameter("x", 0), iAdditionalPairNo:=3) - ucrReceiverData.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("x", 0, False), iAdditionalPairNo:=1) ucrReceiverData.AddAdditionalCodeParameterPair(clsReplaceNAasElement, New RParameter("element", 0, False), iAdditionalPairNo:=2) ucrReceiverData.AddAdditionalCodeParameterPair(clsRRaindayUpperOperator, New RParameter("rain", 0), iAdditionalPairNo:=3) @@ -1021,8 +1038,7 @@ Public Class dlgTransformClimatic ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMinFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMaxFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) - ucrReceiverDOY.SetRCode(clsDayToOperator, bReset) - ucrNudWBLessThan.SetRCode(clsEndSeasonWBConditionOperator, bReset) + ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) ucrInputSum.SetRCode(clsRMovingFunction, bReset) @@ -1061,10 +1077,6 @@ Public Class dlgTransformClimatic ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If - - 'ucrChkEndofSeasonDoy.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) - 'ucrChkEndofSeasonDate.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) - 'ucrChkEndofSeasonOccurence.SetRCode(clsEndSeasonCombinationSubCalcList, bReset) End Sub Private Sub TestOkEnabled() @@ -1161,18 +1173,20 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("calculated_from") clsTransformCheck = clsRollConsecutiveSumFunction ElseIf rdoWaterBalance.Checked Then - 'clsRTransform.AddParameter("function_exp", clsRFunctionParameter:=clsRWaterBalanceFunction, iPosition:=1) + ucrBase.clsRsyntax.SetBaseRFunction(clsEndSeasonRainMinCalc) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBMinCalc, iPosition:=1) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonRainMaxCalc, iPosition:=2) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBMaxCalc, iPosition:=3) + ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBCalc, iPosition:=4) clsRTransform.RemoveParameterByName("sub_calculations") - clsRunCalculation.AddParameter("calc", clsRFunctionParameter:=clsEndSeasonCombinationCalc) - clsFirstOrLastFunction = clsFirstDoyFunction - 'clsTransformCheck = clsRTransform + ReduceWaterBalance() ElseIf rdoDegree.Checked Then DegreeFunctions() clsRTransform.RemoveParameterByName("sub_calculations") clsTransformCheck = clsRTransform End If AddCalculate() - ReduceWaterBalance() + ' ReduceWaterBalance() AutoFill() SetAssignName() GroupByStation() @@ -1304,6 +1318,7 @@ Public Class dlgTransformClimatic ChangeFunctions() AddCalculate() AutoFill() + RainfallChange() End Sub Private Sub ucrInputSpellLower_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrInputSpellUpper.ControlValueChanged, ucrInputCondition.ControlValueChanged @@ -1313,6 +1328,7 @@ Public Class dlgTransformClimatic Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged RainDays() ReduceWaterBalance() + RainfallChange() End Sub Private Sub ucrReceiverStation_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverStation.ControlValueChanged @@ -1494,53 +1510,8 @@ Public Class dlgTransformClimatic End Sub Private Sub RainfallChange() - clsEndRainsRollingSumCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) - clsEndSeasonRainMinCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) - clsEndSeasonRainMaxCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverRainfall.GetVariableNames & ")", iPosition:=3) - End Sub - - 'Private Sub ucrReceiverStationYear_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverYear.ControlValueChanged, ucrReceiverStation.ControlValueChanged - ' GroupingBy() - 'End Sub - - 'Private Sub ucrReceiverDOY_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverDOY.ControlValueChanged, ucrSelectorForWaterBalance.ControlValueChanged - ' If Not ucrReceiverDOY.IsEmpty Then - ' clsDoyFilterCalcFromList.AddParameter(ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text, strParameterValue:=ucrReceiverDOY.GetVariableNames(), iPosition:=0) - ' Else - ' clsDoyFilterCalcFromList.RemoveParameterByName(ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.Text) - ' End If - ' UpdateDayFilterPreview() - 'End Sub - - 'Private Sub ucrSelectorForSpells_ControlContentsChanged(ucrChangedControl As ucrCore) Handles ucrReceiverRainfall.ControlContentsChanged, ucrSelectorForWaterBalance.ControlContentsChanged, ucrReceiverDOY.ControlValueChanged - ' strCurrDataName = Chr(34) & ucrSelectorForWaterBalance.ucrAvailableDataFrames.cboAvailableDataFrames.SelectedItem & Chr(34) - ' GroupingBy() - ' DayChange() - ' RainfallChange() - 'End Sub - - 'Private Sub ucrSelectorForWaterBalance_DataFrameChanged() Handles ucrSelectorForWaterBalance.DataFrameChanged - ' clsDoyFilterCalcFromList.ClearParameters() - 'End Sub - - Private Sub GroupingBy() - If Not ucrReceiverStation.IsEmpty AndAlso Not ucrReceiverYear.IsEmpty Then - clsGroupByStationYearCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverStation.GetVariableNames & "," & strCurrDataName & "=" & ucrReceiverYear.GetVariableNames & ")", iPosition:=3) - Else - clsGroupByStationYearCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverYear.GetVariableNames & ")", iPosition:=3) - End If - If Not ucrReceiverStation.IsEmpty Then - clsGroupByStationCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverStation.GetVariableNames & ")", iPosition:=2) - Else - End If - End Sub - - Private Sub UpdateDayFilterPreview() - If ucrReceiverDOY.IsEmpty Then - ucrInputFilterPreview.SetName("") - Else - ucrInputFilterPreview.SetName(clsDoyFilterOperator.ToScript()) - End If + clsEndSeasonRainMinCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")", iPosition:=3) + clsEndSeasonRainMaxCalc.AddParameter("calculated_from", "list(" & strCurrDataName & "=" & ucrReceiverData.GetVariableNames & ")", iPosition:=3) End Sub Private Sub ucrChkWB_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkWB.ControlValueChanged @@ -1577,7 +1548,6 @@ Public Class dlgTransformClimatic ReduceWaterBalance() End Sub - Private Sub ReduceWaterBalance() If rdoWaterBalance.Checked Then clsPMaxFunction.RemoveParameterByName("0") @@ -1636,28 +1606,4 @@ Public Class dlgTransformClimatic End If End If End Sub - - 'Private Sub ucrChkEndofSeasonOccurence_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonOccurence.ControlValueChanged - ' If ucrChkEndofSeasonOccurence.Checked Then - ' clsEndSeasonCombinationSubCalcList.AddParameter("sub3", clsRFunctionParameter:=clsEndSeasonStatusSummaryCalc, bIncludeArgumentName:=False, iPosition:=2) - ' Else - ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub3") - ' End If - 'End Sub - - 'Private Sub ucrChkEndofSeasonDoy_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonDoy.ControlValueChanged - ' If ucrChkEndofSeasonDoy.Checked Then - ' clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) - ' Else - ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub1") - ' End If - 'End Sub - - 'Private Sub ucrChkEndofSeasonDate_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrChkEndofSeasonDate.ControlValueChanged - ' If ucrChkEndofSeasonDate.Checked Then - ' clsEndSeasonCombinationSubCalcList.AddParameter("sub2", clsRFunctionParameter:=clsEndSeasonFirstDateSummaryCalc, bIncludeArgumentName:=False, iPosition:=1) - ' Else - ' clsEndSeasonCombinationSubCalcList.RemoveParameterByName("sub2") - ' End If - 'End Sub End Class \ No newline at end of file From c71b9dd2c8ae47046eadf37add0506bbf9ec2766 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Fri, 10 May 2024 15:49:55 +0100 Subject: [PATCH 16/21] Change made --- instat/dlgTransformClimatic.vb | 133 +++++++-------------------------- 1 file changed, 25 insertions(+), 108 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 90b8c59265e..bfd52d20901 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -18,7 +18,7 @@ Imports instat.Translations Public Class dlgTransformClimatic Private bFirstload As Boolean = True Private bReset As Boolean = True - Private clsRTransform, clsAsNumericFunction, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction + Private clsRTransform, clsAsNumericFunction, clsWaterBalanceFunction, clsOverallTransformFunction, clsTransformManipulationsFunc, clsGroupByYear, clsGroupByStation, clsReplaceNAasElement, clsRTransformCountSpellSub As New RFunction Private clsTransformCheck As New RFunction 'dummy @@ -49,7 +49,6 @@ Public Class dlgTransformClimatic Private clsWBMinTailFunction2 As New RFunction Private clsEndSeasonIsNaRain As New RFunction Private clsEndSeasonConditionsOperator As New ROperator - Private clsEndSeasonConditionsFilterCalc As New RFunction Private clsEndSeasonCombinationCalc As New RFunction Private clsEndSeasonCombinationSubCalcList As New RFunction Private clsEndSeasonFirstDoySummaryCalc As New RFunction @@ -86,7 +85,6 @@ Public Class dlgTransformClimatic Private clsWBMaxTailFunction1 As New RFunction Private clsReduceWBMaxFunction2 As New RFunction Private clsIfElseRainMinFunction As New RFunction - Private clsEndSeasonCombinationManipulationList As New RFunction Private clsDoyFilterCalc As New RFunction 'Degree @@ -208,12 +206,10 @@ Public Class dlgTransformClimatic ucrReceiverData.SetIncludedDataTypes({"numeric"}) ucrReceiverData.SetLinkedDisplayControl(lblData) + ucrReceiverEvap.SetParameter(New RParameter("x", 0)) ucrReceiverEvap.Selector = ucrSelectorTransform - ucrReceiverEvap.SetParameter(New RParameter("right", 1, bNewIncludeArgumentName:=False)) ucrReceiverEvap.SetParameterIsString() ucrReceiverEvap.bWithQuotes = False - ucrReceiverEvap.strSelectorHeading = "Numerics" - ucrReceiverEvap.SetIncludedDataTypes({"numeric"}) ucrReceiverTMin.Selector = ucrSelectorTransform ucrReceiverTMin.SetParameter(New RParameter("tmin", 1)) @@ -413,9 +409,9 @@ Public Class dlgTransformClimatic clsRTransform = New RFunction clsOverallTransformFunction = New RFunction + clsWaterBalanceFunction = New RFunction clsTransformManipulationsFunc = New RFunction clsRTransformCountSpellSub = New RFunction - clsAsNumericFunction = New RFunction clsDummyFunction = New RFunction @@ -457,14 +453,6 @@ Public Class dlgTransformClimatic clsMeanAddOperator = New ROperator clsMeanDivideByOperator = New ROperator - 'clsPMinFunctionMax = New RFunction - 'clsPMaxFunctionMax = New RFunction - 'clsPMaxOperatorMax = New ROperator - 'clsWBOperator = New ROperator - 'clsGroupByYear.Clear() - 'clsReduceOpEvapValue.Clear() - 'clsReduceOpEvapValue1.Clear() - 'clsReduceOpEvapValue2.Clear() clsGreaterThanOperator.Clear() clsLessThanOperator.Clear() @@ -491,7 +479,6 @@ Public Class dlgTransformClimatic clsWBMinTailFunction1.Clear() clsWBMinTailFunction2.Clear() clsIfElseRainMinFunction.Clear() - clsEndSeasonCombinationManipulationList.Clear() clsEndSeasonConditionsFilterSubCalcsList.Clear() clsEndSeasonWBConditionOperator.Clear() clsIfElseWBFunction.Clear() @@ -513,7 +500,6 @@ Public Class dlgTransformClimatic clsReduceWBMaxFunction2.Clear() clsReduceWBMinFunction2.Clear() clsEndSeasonConditionsOperator.Clear() - clsEndSeasonConditionsFilterCalc.Clear() clsEndSeasonCombinationCalc.Clear() clsDoyFilterCalc.Clear() clsDoyFilterOperator.Clear() @@ -600,52 +586,6 @@ Public Class dlgTransformClimatic clsRasterFuction.AddParameter("na.rm", "TRUE", iPosition:=5) clsRasterFuction.bToScriptAsRString = True - ' Water Balance - 'clsAsNumericFunction.SetRCommand("as.numeric") - - 'clsRWaterBalanceFunction.bToScriptAsRString = True - 'clsRWaterBalanceFunction.SetPackageName("purrr") - 'clsRWaterBalanceFunction.SetRCommand("accumulate") - 'clsRWaterBalanceFunction.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - 'clsPMinFunctionMax.SetRCommand("~ pmin") - 'clsPMinFunctionMax.AddParameter("pmax", clsRFunctionParameter:=clsPMaxFunctionMax, iPosition:=0, bIncludeArgumentName:=False) - 'clsPMaxFunctionMax.SetRCommand("pmax") - 'clsPMaxOperatorMax.SetOperation("-") - 'clsPMaxFunctionMax.AddParameter("0", "0", iPosition:=1, bIncludeArgumentName:=False) - 'clsRWaterBalanceFunction.AddParameter("accumulate", "TRUE", iPosition:=2) - - 'clsRWaterBalanceFunction1.bToScriptAsRString = True - 'clsRWaterBalanceFunction1.SetPackageName("purrr") - 'clsRWaterBalanceFunction1.SetRCommand("accumulate2") - 'clsRWaterBalanceFunction1.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - 'clsRWaterBalanceFunction1.AddParameter(".y", clsRFunctionParameter:=clsTailFunction, iPosition:=1) - 'clsRWaterBalanceFunction1.AddParameter("accumulate", "TRUE", iPosition:=2) - - 'clsRWaterBalanceFunction2.bToScriptAsRString = True - 'clsRWaterBalanceFunction2.SetPackageName("purrr") - 'clsRWaterBalanceFunction2.SetRCommand("accumulate") - 'clsRWaterBalanceFunction2.AddParameter(".f", clsRFunctionParameter:=clsPMinFunctionMax, iPosition:=0) - 'clsRWaterBalanceFunction2.AddParameter("accumulate", "TRUE", iPosition:=2) - - 'clsWBOperator.SetOperation("-") - 'clsWBOperator.AddParameter("left", "..1 + ..2", iPosition:=0) - 'clsWBOperator.AddParameter("right", clsRFunctionParameter:=clsWBEvaporation, iPosition:=1) - 'clsWBOperator.bSpaceAroundOperation = True - 'clsWBOperator.bBrackets = False - - 'clsReduceOpEvapValue.SetOperation("-") - - 'clsReduceOpEvapValue1.SetOperation("-") - - 'clsReduceOpEvapValue2.SetOperation("-") - - 'clsWBEvaporation.SetRCommand("WB_evaporation") - 'clsWBEvaporation.AddParameter("water_balance", "..1", iPosition:=0, bIncludeArgumentName:=False) - ''clsWBEvaporation.AddParameter("capacity", 60, iPosition:=2, bIncludeArgumentName:=False) - 'clsWBEvaporation.AddParameter("y", "..2", iPosition:=4, bIncludeArgumentName:=False) - - 'clsTailFunction.SetRCommand("tail") - 'clsTailFunction.AddParameter("n", "-1", iPosition:=1 clsGroupByStationCalc.SetRCommand("instat_calculation$new") clsGroupByStationCalc.AddParameter("type", Chr(34) & "by" & Chr(34), iPosition:=0) clsGroupByStationCalc.SetAssignTo("grouping_by_station") @@ -657,12 +597,6 @@ Public Class dlgTransformClimatic clsEndSeasonCombinationSubCalcList.SetRCommand("list") clsEndSeasonCombinationSubCalcList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonFirstDoySummaryCalc, bIncludeArgumentName:=False, iPosition:=0) - 'clsEndSeasonCombinationCalc.SetRCommand("instat_calculation$new") - 'clsEndSeasonCombinationCalc.AddParameter("type", Chr(34) & "combination" & Chr(34), iPosition:=0) - 'clsEndSeasonCombinationCalc.AddParameter("manipulations", clsRFunctionParameter:=clsEndSeasonCombinationManipulationList, iPosition:=1) - 'clsEndSeasonCombinationCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonCombinationSubCalcList, iPosition:=2) - 'clsEndSeasonCombinationCalc.SetAssignTo(strEndofSeason) - clsDoyFilterOperator.SetOperation("&") clsDoyFilterOperator.AddParameter("from_operator", clsROperatorParameter:=clsDayFromOperator, iPosition:=0) clsDoyFilterOperator.AddParameter("to_operator", clsROperatorParameter:=clsDayToOperator, iPosition:=1) @@ -680,29 +614,11 @@ Public Class dlgTransformClimatic clsDoyFilterCalcFromList.SetRCommand("list") - 'clsDoyFilterCalc.SetRCommand("instat_calculation$new") - 'clsDoyFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) - 'clsDoyFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsDoyFilterOperator, iPosition:=1) - 'clsDoyFilterCalc.AddParameter("calculated_from", clsRFunctionParameter:=clsDoyFilterCalcFromConvert, iPosition:=2) - 'clsDoyFilterCalc.SetAssignTo(strDoyFilter) - - clsEndSeasonCombinationManipulationList.SetRCommand("list") - clsEndSeasonCombinationManipulationList.AddParameter("manip1", clsRFunctionParameter:=clsEndSeasonConditionsFilterCalc, bIncludeArgumentName:=False, iPosition:=0) - clsEndSeasonCombinationManipulationList.AddParameter("manip2", clsRFunctionParameter:=clsGroupByStationYearCalc, bIncludeArgumentName:=False, iPosition:=1) - clsEndSeasonCombinationManipulationList.AddParameter("manip3", clsRFunctionParameter:=clsDoyFilterCalc, bIncludeArgumentName:=False, iPosition:=2) - clsEndSeasonIsNaRain.SetRCommand("is.na") - 'clsEndSeasonConditionsFilterCalc.SetRCommand("instat_calculation$new") - 'clsEndSeasonConditionsFilterCalc.AddParameter("type", Chr(34) & "filter" & Chr(34), iPosition:=0) - 'clsEndSeasonConditionsFilterCalc.AddParameter("function_exp", clsROperatorParameter:=clsEndSeasonConditionsOperator, iPosition:=1) - 'clsEndSeasonConditionsFilterCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonConditionsFilterSubCalcsList, iPosition:=4) - 'clsEndSeasonConditionsFilterCalc.SetAssignTo(strConditionsFilter) - clsEndSeasonConditionsFilterSubCalcsList.SetRCommand("list") clsEndSeasonConditionsFilterSubCalcsList.AddParameter("sub1", clsRFunctionParameter:=clsEndSeasonWBCalc, iPosition:=0, bIncludeArgumentName:=False) - clsEndSeasonConditionsOperator.bToScriptAsRString = True clsEndSeasonConditionsOperator.SetOperation("|") clsEndSeasonConditionsOperator.AddParameter("0", clsROperatorParameter:=clsEndSeasonWBConditionOperator, iPosition:=0) @@ -716,8 +632,7 @@ Public Class dlgTransformClimatic clsEndSeasonWBCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) clsEndSeasonWBCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseWBFunction, iPosition:=1) clsEndSeasonWBCalc.AddParameter("save", "2", iPosition:=2) - clsEndSeasonWBCalc.AddParameter("adjacent_column", ucrReceiverData.GetVariableNames(), iPosition:=3) - clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & strWB & Chr(34), iPosition:=2) + clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & "water" & Chr(34), iPosition:=2) clsEndSeasonWBCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBCalcSubCalcsList, iPosition:=5) clsEndSeasonWBCalc.SetAssignTo(strWB) @@ -762,8 +677,6 @@ Public Class dlgTransformClimatic clsEndSeasonWBMinCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBMinCalcSubCalcsList, iPosition:=3) clsEndSeasonWBMinCalc.SetAssignTo(strWBMin) - - clsEndSeasonRainMinCalc.SetRCommand("instat_calculation$new") clsEndSeasonRainMinCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) clsEndSeasonRainMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseRainMinFunction, iPosition:=1) @@ -776,7 +689,7 @@ Public Class dlgTransformClimatic clsIfElseRainMinFunction.AddParameter("yes", "0", iPosition:=1) clsEndSeasonWBMinCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", Chr(34) & strRainMin & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBMinCalcSubCalcsList.AddParameter("0", strRainMin, iPosition:=0, bIncludeArgumentName:=False) clsReduceWBMinFunction.bToScriptAsRString = True clsReduceWBMinFunction.SetPackageName("purrr") @@ -799,6 +712,10 @@ Public Class dlgTransformClimatic clsReduceWBMinFunction2.AddParameter(".x", clsRFunctionParameter:=clsWBMinTailFunction2, iPosition:=1) clsReduceWBMinFunction2.AddParameter(".init", "0", iPosition:=2) + clsAsNumericFunction = New RFunction + clsAsNumericFunction.SetRCommand("as.numeric") + clsAsNumericFunction.AddParameter("x", ucrReceiverEvap.GetVariableNames(), iPosition:=0, bIncludeArgumentName:=False) + clsMinusMinOperator = New ROperator clsMinusMinOperator.SetOperation("-") clsMinusMinOperator.AddParameter("left", strRainMin, iPosition:=0, bIncludeArgumentName:=False) @@ -810,11 +727,9 @@ Public Class dlgTransformClimatic clsPMinWBMinFunction.SetRCommand(" ~ pmin") - clsEndSeasonWBCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBCalcSubCalcsList.AddParameter("0", clsRFunctionParameter:=clsEndSeasonWBMinCalc, iPosition:=0, bIncludeArgumentName:=False) - clsEndSeasonWBCalcSubCalcsList.AddParameter("1", clsRFunctionParameter:=clsEndSeasonWBMaxCalc, iPosition:=1, bIncludeArgumentName:=False) - + clsEndSeasonWBCalcSubCalcsList.AddParameter("0", strWBMin, iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBCalcSubCalcsList.AddParameter("1", strWBMax, iPosition:=1, bIncludeArgumentName:=False) clsWBMinTailFunction.SetRCommand("tail") clsWBMinTailFunction.AddParameter("x", clsROperatorParameter:=clsWBMinEvapOperator, iPosition:=0) @@ -843,7 +758,7 @@ Public Class dlgTransformClimatic clsEndSeasonRainMaxCalc.SetAssignTo(strRainMax) clsEndSeasonWBMaxCalcSubCalcsList.SetRCommand("list") - clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", Chr(34) & strRainMax & Chr(34), iPosition:=0, bIncludeArgumentName:=False) + clsEndSeasonWBMaxCalcSubCalcsList.AddParameter("0", strRainMax, iPosition:=0, bIncludeArgumentName:=False) clsMinusMaxOperator = New ROperator clsMinusMaxOperator.SetOperation("-") @@ -1017,6 +932,7 @@ Public Class dlgTransformClimatic ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=10) ucrReceiverData.AddAdditionalCodeParameterPair(clsEndSeasonIsNaRain, New RParameter("x", 0), iAdditionalPairNo:=11) ucrReceiverData.AddAdditionalCodeParameterPair(clsIfElseRainMaxFunction, New RParameter("no", 2), iAdditionalPairNo:=12) + ' ucrReceiverData.AddAdditionalCodeParameterPair(clsEndSeasonWBCalc, New RParameter("adjacent_column", 3), iAdditionalPairNo:=13) ucrNudSumOver.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrInputSum.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("fun", 2), iAdditionalPairNo:=1) ucrInputSpellUpper.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("max", 1), iAdditionalPairNo:=1) @@ -1035,9 +951,7 @@ Public Class dlgTransformClimatic ucrReceiverTMin.AddAdditionalCodeParameterPair(clsMeanAddOperator, New RParameter("tmin", 1), iAdditionalPairNo:=2) ucrInputEvaporation.AddAdditionalCodeParameterPair(clsWBMaxEvapOperator, New RParameter("value", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) ucrReceiverEvap.AddAdditionalCodeParameterPair(clsWBMaxTailFunction1, New RParameter("x", 0), iAdditionalPairNo:=1) - - ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMinFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=1) - ucrNudWBCapacity.AddAdditionalCodeParameterPair(clsPMinWBMaxFunction, New RParameter("1", 1, bNewIncludeArgumentName:=False), iAdditionalPairNo:=2) + ucrReceiverEvap.AddAdditionalCodeParameterPair(clsAsNumericFunction, New RParameter("x", 0), iAdditionalPairNo:=2) ' Moving ucrNudSumOver.SetRCode(clsRMovingFunction, bReset) @@ -1073,7 +987,6 @@ Public Class dlgTransformClimatic ucrChkGroupByYear.SetRCode(clsTransformManipulationsFunc, bReset) ucrInputEvaporation.SetRCode(clsWBMinEvapOperator, bReset) ucrPnlEvap.SetRCode(clsDummyFunction, bReset) - 'ucrChkWB.SetRCode(clsPMinFunctionMax, bReset) ucrPnlTransform.SetRCode(clsDummyFunction, bReset) ucrPnlDegree.SetRCode(clsDummyFunction, bReset) End If @@ -1173,11 +1086,15 @@ Public Class dlgTransformClimatic clsRTransform.RemoveParameterByName("calculated_from") clsTransformCheck = clsRollConsecutiveSumFunction ElseIf rdoWaterBalance.Checked Then - ucrBase.clsRsyntax.SetBaseRFunction(clsEndSeasonRainMinCalc) - ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBMinCalc, iPosition:=1) - ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonRainMaxCalc, iPosition:=2) - ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBMaxCalc, iPosition:=3) - ucrBase.clsRsyntax.AddToAfterCodes(clsEndSeasonWBCalc, iPosition:=4) + clsWaterBalanceFunction.SetRCommand(frmMain.clsRLink.strInstatDataObject & "$run_instat_calculation") + clsWaterBalanceFunction.AddParameter("calc", strWB, iPosition:=0) + clsWaterBalanceFunction.AddParameter("display", "FALSE", iPosition:=1) + ucrBase.clsRsyntax.SetBaseRFunction(clsWaterBalanceFunction) + ucrBase.clsRsyntax.AddToBeforeCodes(clsEndSeasonRainMinCalc, iPosition:=0) + ucrBase.clsRsyntax.AddToBeforeCodes(clsEndSeasonWBMinCalc, iPosition:=1) + ucrBase.clsRsyntax.AddToBeforeCodes(clsEndSeasonRainMaxCalc, iPosition:=2) + ucrBase.clsRsyntax.AddToBeforeCodes(clsEndSeasonWBMaxCalc, iPosition:=3) + ucrBase.clsRsyntax.AddToBeforeCodes(clsEndSeasonWBCalc, iPosition:=4) clsRTransform.RemoveParameterByName("sub_calculations") ReduceWaterBalance() ElseIf rdoDegree.Checked Then @@ -1186,7 +1103,6 @@ Public Class dlgTransformClimatic clsTransformCheck = clsRTransform End If AddCalculate() - ' ReduceWaterBalance() AutoFill() SetAssignName() GroupByStation() @@ -1325,7 +1241,7 @@ Public Class dlgTransformClimatic InputConditionOptions() End Sub - Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged, ucrReceiverEvap.ControlValueChanged + Private Sub ucrReceiverData_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrReceiverData.ControlValueChanged RainDays() ReduceWaterBalance() RainfallChange() @@ -1560,6 +1476,7 @@ Public Class dlgTransformClimatic clsWBMinEvapOperator.RemoveParameterByName("value") clsPMaxFunction.RemoveParameterByName("wb") clsPMaxFunction.RemoveParameterByName("wb") + clsEndSeasonWBCalc.AddParameter("adjacent_column", ucrReceiverData.GetVariableNames(), iPosition:=3) If rdoEvapValue.Checked Then clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction, iPosition:=1) clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction, iPosition:=1) From 50f26adda851934584881304324738a92e934a1d Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Mon, 13 May 2024 12:15:37 +0100 Subject: [PATCH 17/21] Change made --- instat/dlgTransformClimatic.vb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index bfd52d20901..781e7303fed 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -61,6 +61,7 @@ Public Class dlgTransformClimatic Private clsEndSeasonConditionsFilterSubCalcsList As New RFunction Private clsEndSeasonWBCalc As New RFunction Private clsEndSeasonWBCalcSubCalcsList As New RFunction + Private clsRoundFunction As New RFunction Private clsEndSeasonWBConditionOperator As New ROperator Private clsIfElseWBFunction As New RFunction Private clsWBOperator As New ROperator @@ -482,6 +483,7 @@ Public Class dlgTransformClimatic clsEndSeasonConditionsFilterSubCalcsList.Clear() clsEndSeasonWBConditionOperator.Clear() clsIfElseWBFunction.Clear() + clsRoundFunction.Clear() clsWBMinMaxOperator.Clear() clsEndSeasonRainMaxCalc.Clear() clsWBMaxTailFunction2.Clear() @@ -630,18 +632,21 @@ Public Class dlgTransformClimatic clsEndSeasonWBCalc.SetRCommand("instat_calculation$new") clsEndSeasonWBCalc.AddParameter("type", Chr(34) & "calculation" & Chr(34), iPosition:=0) - clsEndSeasonWBCalc.AddParameter("function_exp", clsRFunctionParameter:=clsIfElseWBFunction, iPosition:=1) + clsEndSeasonWBCalc.AddParameter("function_exp", clsRFunctionParameter:=clsRoundFunction, iPosition:=1) clsEndSeasonWBCalc.AddParameter("save", "2", iPosition:=2) - clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & "water" & Chr(34), iPosition:=2) clsEndSeasonWBCalc.AddParameter("sub_calculations", clsRFunctionParameter:=clsEndSeasonWBCalcSubCalcsList, iPosition:=5) clsEndSeasonWBCalc.SetAssignTo(strWB) - clsIfElseWBFunction.bToScriptAsRString = True clsIfElseWBFunction.SetRCommand("ifelse") clsIfElseWBFunction.AddParameter("test", clsROperatorParameter:=clsWBOperator, iPosition:=0) clsIfElseWBFunction.AddParameter("yes", "NA", iPosition:=1) clsIfElseWBFunction.AddParameter("no", strWBMin, iPosition:=2) + clsRoundFunction.bToScriptAsRString = True + clsRoundFunction.SetRCommand("round") + clsRoundFunction.AddParameter("x", clsRFunctionParameter:=clsIfElseWBFunction, bIncludeArgumentName:=False, iPosition:=0) + clsRoundFunction.AddParameter("y", "1", iPosition:=1, bIncludeArgumentName:=False) + clsWBOperator.SetOperation("|") clsWBOperator.AddParameter("0", clsROperatorParameter:=clsWBMinMaxOperator, iPosition:=0) clsWBOperator.AddParameter("1", clsRFunctionParameter:=clsEndSeasonIsNaRain, iPosition:=1) @@ -1359,6 +1364,7 @@ Public Class dlgTransformClimatic Private Sub ucrSaveColumn_ControlValueChanged(ucrChangedControl As ucrCore) Handles ucrSaveColumn.ControlValueChanged 'change the parameter values + clsEndSeasonWBCalc.AddParameter("result_name", Chr(34) & ucrSaveColumn.GetText() & Chr(34), iPosition:=2) clsRTransform.AddParameter(strParameterName:="result_name", strParameterValue:=Chr(34) & ucrSaveColumn.GetText & Chr(34), iPosition:=2) End Sub From 8a3396e4521f69ebef7a6e75c80f5e643cbcbd42 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 5 Jun 2024 09:01:47 +0100 Subject: [PATCH 18/21] change made --- instat/dlgTransformClimatic.vb | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index 781e7303fed..e26347c29d0 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -1474,8 +1474,8 @@ Public Class dlgTransformClimatic If rdoWaterBalance.Checked Then clsPMaxFunction.RemoveParameterByName("0") clsPMaxFunction.RemoveParameterByName("0") - clsPMinWBMaxFunction.RemoveParameterByName("1") - clsPMinWBMinFunction.RemoveParameterByName("1") + 'clsPMinWBMaxFunction.RemoveParameterByName("1") + 'clsPMinWBMinFunction.RemoveParameterByName("1") clsWBMinEvapOperator.RemoveParameterByName("variable") clsWBMaxEvapOperator.RemoveParameterByName("variable") clsWBMaxEvapOperator.RemoveParameterByName("value") @@ -1483,6 +1483,8 @@ Public Class dlgTransformClimatic clsPMaxFunction.RemoveParameterByName("wb") clsPMaxFunction.RemoveParameterByName("wb") clsEndSeasonWBCalc.AddParameter("adjacent_column", ucrReceiverData.GetVariableNames(), iPosition:=3) + clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) + clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) If rdoEvapValue.Checked Then clsEndSeasonWBMinCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMinFunction, iPosition:=1) clsEndSeasonWBMaxCalc.AddParameter("function_exp", clsRFunctionParameter:=clsReduceWBMaxFunction, iPosition:=1) @@ -1497,12 +1499,8 @@ Public Class dlgTransformClimatic clsWBMaxEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) clsWBMinEvapOperator.AddParameter("value", ucrInputEvaporation.GetText(), iPosition:=1) clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) - clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) - - clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) End If Else ucrReceiverEvap.SetMeAsReceiver() @@ -1523,8 +1521,6 @@ Public Class dlgTransformClimatic clsPMaxFunction.AddParameter("0", "..1 + ..2", iPosition:=0, bIncludeArgumentName:=False) clsPMinWBMinFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) clsPMinWBMaxFunction.AddParameter("0", clsRFunctionParameter:=clsPMaxFunction, iPosition:=0, bIncludeArgumentName:=False) - clsPMinWBMaxFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) - clsPMinWBMinFunction.AddParameter("1", ucrNudWBCapacity.GetText(), iPosition:=1, bIncludeArgumentName:=False) End If End If End If From dcd475a5b192c8a0e7fce4b2d496b59303568fde Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 5 Jun 2024 11:10:00 +0100 Subject: [PATCH 19/21] minor change made --- instat/dlgTransformClimatic.vb | 2 -- 1 file changed, 2 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index e26347c29d0..ae8cd26b68b 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -1474,8 +1474,6 @@ Public Class dlgTransformClimatic If rdoWaterBalance.Checked Then clsPMaxFunction.RemoveParameterByName("0") clsPMaxFunction.RemoveParameterByName("0") - 'clsPMinWBMaxFunction.RemoveParameterByName("1") - 'clsPMinWBMinFunction.RemoveParameterByName("1") clsWBMinEvapOperator.RemoveParameterByName("variable") clsWBMaxEvapOperator.RemoveParameterByName("variable") clsWBMaxEvapOperator.RemoveParameterByName("value") From 654068b47af7bf7415178ca22c28faf101d883a9 Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Wed, 5 Jun 2024 11:14:44 +0100 Subject: [PATCH 20/21] minor change --- instat/dlgTransformClimatic.vb | 1 - 1 file changed, 1 deletion(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index ae8cd26b68b..abdaaa063b3 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -937,7 +937,6 @@ Public Class dlgTransformClimatic ucrReceiverData.AddAdditionalCodeParameterPair(clsCumulativeMinimum, New RParameter("x", 0, False), iAdditionalPairNo:=10) ucrReceiverData.AddAdditionalCodeParameterPair(clsEndSeasonIsNaRain, New RParameter("x", 0), iAdditionalPairNo:=11) ucrReceiverData.AddAdditionalCodeParameterPair(clsIfElseRainMaxFunction, New RParameter("no", 2), iAdditionalPairNo:=12) - ' ucrReceiverData.AddAdditionalCodeParameterPair(clsEndSeasonWBCalc, New RParameter("adjacent_column", 3), iAdditionalPairNo:=13) ucrNudSumOver.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("n", 1), iAdditionalPairNo:=1) ucrInputSum.AddAdditionalCodeParameterPair(clsRasterFuction, New RParameter("fun", 2), iAdditionalPairNo:=1) ucrInputSpellUpper.AddAdditionalCodeParameterPair(clsGreaterThanOperator, New RParameter("max", 1), iAdditionalPairNo:=1) From 57ce50d7ba46f40bc3e3dc30cd1eb2d00c30d0da Mon Sep 17 00:00:00 2001 From: Sophie Malla Tatchum Date: Thu, 6 Jun 2024 11:27:02 +0100 Subject: [PATCH 21/21] minor change made --- instat/dlgTransformClimatic.vb | 9 --------- 1 file changed, 9 deletions(-) diff --git a/instat/dlgTransformClimatic.vb b/instat/dlgTransformClimatic.vb index abdaaa063b3..ca2690e2c39 100644 --- a/instat/dlgTransformClimatic.vb +++ b/instat/dlgTransformClimatic.vb @@ -404,10 +404,6 @@ Public Class dlgTransformClimatic End Sub Private Sub SetDefaults() - 'Dim strEndofSeason As String = "end_of_season_combined" - 'Dim strDoyFilter As String = "doy_filter" - 'Dim strConditionsFilter As String = "conditions_filter" - clsRTransform = New RFunction clsOverallTransformFunction = New RFunction clsWaterBalanceFunction = New RFunction @@ -424,11 +420,6 @@ Public Class dlgTransformClimatic clsRasterFuction = New RFunction clsReplaceNAasElement = New RFunction clsRCountFunction = New RFunction - 'clsRWaterBalanceFunction = New RFunction - 'clsRWaterBalanceFunction1 = New RFunction - 'clsRWaterBalanceFunction2 = New RFunction - 'clsWBEvaporation = New RFunction - 'clsTailFunction = New RFunction clsRRaindayMatch = New RFunction clsRRaindayAndOperator = New ROperator clsRRaindayOrOperator = New ROperator