IMsPointwiseCollapseTransform.Input

Fore Syntax

Input: IMsFormulaTermInfo;

Fore.NET Syntax

Input: Prognoz.Platform.Interop.Ms.IMsFormulaTermInfo;

Description

The Input property determines the term corresponding to input variable.

Comments

For source frequency use the IMsPointwiseCollapseTransform.InputLevel property.

Fore Example

Executing the example requires that the repository contains a modeling container with the MS identifier. This modeling container must have a model with the MODEL_COLLAPSE_POINT identifier calculated by the Collapse (Pointwise Calculation) method. It is also required to have a time series database with the TSDB identifier containing annual and monthly frequencies.

Add links to the Cubes, Dimensions, Metabase, Ms, Stat system assemblies.

Sub UserProc;
Var
    mb: IMetabase;
    MsKey: Integer;
    Model: IMsModel;
    Stub: IVariableStub;
    Tree: IMsFormulaTransformSlicesTree;
    RubrDescr: IMetabaseObjectDescriptor;
    Transform: IMsFormulaTransform;
    TransformVarables: IMsFormulaTransformVariables;
    TransformVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    Slice: IMsFormulaTransformSlice;
    Collapse: IMsPointwiseCollapseTransform;
    TermInfo: IMsFormulaTermInfo;
    Calcul: IMsMethodCalculation;
    arr: Array Of double;
    i: Integer;
    Period: IMsModelPeriod;
Begin
    // Get current repository
    mb := MetabaseClass.Active;
    // Get modelling container key
    MsKey := mb.GetObjectKeyById("MS");
    // Get the model
    Model := mb.ItemByIdNamespace("MODEL_COLLAPSE_POINT", MsKey).Edit As IMsModel;
    // Get object to set up model parameters
    Transform := Model.Transform;
    // Get output variables collection
    TransformVarables := Transform.Outputs;
    // Get the first output variable  
    TransformVar := TransformVarables.Item(0);
    // Create calculation parameters of output variable
    Coord := Transform.CreateCoord(TransformVar);
    // Get calculation parameters of the Collapse method  
    Collapse := Transform.FormulaItem(0).Method As IMsPointwiseCollapseTransform;
    // Get time series database (TSDB)
    RubrDescr := Mb.ItemById("TSDB");
    // Cast obtained TSDB to abstract data source
    Stub := RubrDescr.Bind As IVariableStub;
    // Add the factor with the TSDB data source in the model
    TransformVar := Transform.Inputs.Add(Stub);
    Tree := TransformVar.SlicesTree(TransformVar);
    Slice := Tree.CreateSlice(2);
    // Get factor as a term
    TermInfo := Transform.CreateTermInfo;
    TermInfo.Slice := Slice;
    // Specify obtained term as an input variable
    Collapse.Input := TermInfo;
    // Specify original frequency
    Collapse.InputLevel := DimCalendarLevel.Month;
    // Set collapse type
    Collapse.MethodType := MsCollapseType.Average;
    // Specify missing data treatment method
    Collapse.MissingData.Method := MissingDataMethod.LinTrend;
    // Set the number of missing values in output series,
    // which can be considered sufficient for aggregation
    Collapse.Tolerance := 5;
    // Create an object with model calculation parameters
    Calcul := Transform.CreateCalculation;
    // Set calculation periods
    Period := Model.Transform.Period;
    Calcul.Period.IdentificationStartDate := Period.IdentificationStartDate;
    Calcul.Period.IdentificationEndDate := Period.IdentificationEndDate;
    Calcul.Period.ForecastStartDate := Period.ForecastStartDate;
    Calcul.Period.ForecastEndDate := Period.ForecastEndDate;
    Calcul.CurrentPoint := Period.IdentificationStartDate;
    // Get output variable data
    arr := Collapse.CalculateSeries(Calcul, Coord).Modelling;
    // Output name and data of output variable in the console window
    Debug.WriteLine(Collapse.Result.TermInfo.TermText);
    For i := 0 To arr.Length - 1 Do
        Debug.WriteLine(arr[i]);
    End For;
    // Save changes in model 
    (Model As IMetabaseObject).Save;
End Sub UserProc;

After executing the example calculation settings of the MODEL_COLLAPSE_POINT model are changed: output variable is changed, collapse calculation method is changed, and so on. Calculation results are displayed in the console window.

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore example.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsKey: uinteger;
    Model: IMsModel;
    Stub: IVariableStub;
    Tree: IMsFormulaTransformSlicesTree;
    RubrDescr: IMetabaseObjectDescriptor;
    Transform: IMsFormulaTransform;
    TransformVarables: IMsFormulaTransformVariables;
    TransformVar: IMsFormulaTransformVariable;
    Coord: IMsFormulaTransformCoord;
    Slice: IMsFormulaTransformSlice;
    Collapse: IMsPointwiseCollapseTransform;
    TermInfo: IMsFormulaTermInfo;
    Calcul: IMsMethodCalculation;
    arr: System.Array;
    i: Integer;
    Period: IMsModelPeriod;
Begin
    // Get current repository
    mb := Params.Metabase;
    // Get modelling container key
    MsKey := mb.GetObjectKeyById("MS");
    // Get the model
    Model := mb.ItemByIdNamespace["MODEL_COLLAPSE_POINT", MsKey].Edit() As IMsModel;
    // Get object to set up model parameters
    Transform := Model.Transform;
    // Get output variables collection
    TransformVarables := Transform.Outputs;
    // Get the first output variable  
    TransformVar := TransformVarables.Item[0];
    // Create calculation parameters of output variable
    Coord := Transform.CreateCoord(TransformVar);
    // Get calculation parameters of the Collapse method  
    Collapse := Transform.FormulaItem[0].Method As IMsPointwiseCollapseTransform;
    // Get time series database (TSDB)
    RubrDescr := Mb.ItemById["TSDB"];
    // Cast obtained TSDB to abstract data source
    Stub := RubrDescr.Bind() As IVariableStub;
    // Add the factor with the TSDB data source in the model
    TransformVar := Transform.Inputs.Add(Stub);
    Tree := TransformVar.SlicesTree[TransformVar];
    Slice := Tree.CreateSlice(2);
    // Get factor as a term
    TermInfo := Transform.CreateTermInfo();
    TermInfo.Slice := Slice;
    // Specify obtained term as an input variable
    Collapse.Input := TermInfo;
    // Specify original frequency
    Collapse.InputLevel := DimCalendarLevel.dclMonth;
    // Set collapse type
    Collapse.MethodType := MsCollapseType.mctAverage;
    // Specify missing data treatment method
    Collapse.MissingData.Method := MissingDataMethod.mdmLinTrend;
    // Set the number of missing values in output series,
    // which can be considered sufficient for aggregation
    Collapse.Tolerance := 5;
    // Create an object with model calculation parameters
    Calcul := Transform.CreateCalculation();
    // Set calculation periods
    Period := Model.Transform.Period;
    Calcul.Period.IdentificationStartDate := Period.IdentificationStartDate;
    Calcul.Period.IdentificationEndDate := Period.IdentificationEndDate;
    Calcul.Period.ForecastStartDate := Period.ForecastStartDate;
    Calcul.Period.ForecastEndDate := Period.ForecastEndDate;
    Calcul.CurrentPoint := Period.IdentificationStartDate;
    // Get output variable data
    arr := Collapse.CalculateSeries[Calcul, Coord].Modelling;
    // Output name and data of output variable in the console window
    System.Diagnostics.Debug.WriteLine(Collapse.Result.TermInfo.TermText);
    For i := 0 To arr.Length - 1 Do
        System.Diagnostics.Debug.WriteLine(arr[i]);
    End For;
    // Save changes in model 
    (Model As IMetabaseObject).Save();
End Sub;

See also:

IMsPointwiseCollapseTransform