STK ObjectsSend comments on this topic.
IAgDataProvider Interface

Description

Represents the Sub Data Provider (i.e. \"Fixed\" in \"Cartesian Position\" group on satellites, or \"Cartesian Position\" on facilities).

Public Methods

Public Method IsStatisticAvailableIs the supplied statistic available for the provided element name?
Public Method IsTimeVarExtremumAvailableIs the supplied time varying extremum available for the provided element name?

Public Properties

Public Property AllowUIWhen set to true the data provider will display a user interface to select/enter the pre-data required.
Public Property ElementsReturns a collection of elements associated with a DataProvider or a SubDataProvider.
Public Property IsValidReturns whether the data provider is valid.
Public Property PreDataThe string associated with the current PreData parameter.
Public Property PreDataDescriptionReturns a description of the required pre data.
Public Property PreDataRequiredReturns whether the data provider requires pre data.

CoClasses that Implement IAgDataProvider

Example

Execute a time dependent group data provider which uses preData and returning the specified elements
[C#]
Array elems = new object[] 
{ "Time", "x", "y", "z" };
IAgDataProviderGroup dpVectorChoose = satObj.DataProviders["Vector Choose Axes"] as IAgDataProviderGroup;
IAgDataProvider groupPosition = dpVectorChoose.Group["Position"] as IAgDataProvider;
groupPosition.PreData = "Satellite/Sat2 Body";
IAgDataPrvTimeVar timeVarDP = groupPosition as IAgDataPrvTimeVar;
IAgDrResult result = timeVarDP.ExecElements("26 Jan 2015 17:00:00.000", "27 Jan 2015 17:00:00.000", 120, ref elems);
IAgDrDataSetCollection datasets = result.DataSets;

if (result.DataSets.Count > 0)
{
    System.Array arrayTime = datasets[0].GetValues();
    System.Array arrayX = datasets[1].GetValues();
    System.Array arrayY = datasets[2].GetValues();
    System.Array arrayZ = datasets[2].GetValues();
}
Execute a time dependent data provider which uses preData and returning the specified elements
[C#]
Array elems = new object[] 
{ "Range", "Radial Rate" };
IAgDataPrvTimeVar RICdp = satObj.DataProviders["Relative Motion"] as IAgDataPrvTimeVar;
(RICdp as IAgDataProvider).PreData = "Satellite/Satellite123";
IAgDrResult result = RICdp.ExecElements("26 Jan 2015 17:00:00.000", "27 Jan 2015 17:00:00.000", 120, ref elems);
IAgDrDataSetCollection datasets = result.DataSets;

if (result.DataSets.Count > 0)
{
    System.Array arrayRange = datasets[0].GetValues();
    System.Array arrayRadialRate = datasets[1].GetValues();
}
Is statistics available for data provider element
[C#]
IAgDataProvider dataProvider = satellite.DataProviders.GetDataPrvInfoFromPath("LLR State/Fixed") as IAgDataProvider;
if (dataProvider.IsStatisticAvailable(AgEStatistics.eMean, "Lat"))
{
    // Calculate statistics from Data Set
}
Is time varying extremum available for data provider element
[C#]
IAgDataProvider dataProvider = satellite.DataProviders.GetDataPrvInfoFromPath("LLR State/Fixed") as IAgDataProvider;
if (dataProvider.IsTimeVarExtremumAvailable(AgETimeVarExtremum.eMax, "Lat"))
{
    // Calculate statistics from Data Set
}
Execute a time dependent group data provider which uses preData and returning the specified elements
[Visual Basic .NET]
Dim elems As Array = New Object() {"Time", "x", "y", "z"}
Dim dpVectorChoose As IAgDataProviderGroup = TryCast(satObj.DataProviders("Vector Choose Axes"), IAgDataProviderGroup)
Dim groupPosition As IAgDataProvider = TryCast(dpVectorChoose.Group("Position"), IAgDataProvider)
groupPosition.PreData = "Satellite/Sat2 Body"
Dim timeVarDP As IAgDataPrvTimeVar = TryCast(groupPosition, IAgDataPrvTimeVar)
Dim result As IAgDrResult = timeVarDP.ExecElements("26 Jan 2015 17:00:00.000", "27 Jan 2015 17:00:00.000", 120, elems)
Dim datasets As IAgDrDataSetCollection = result.DataSets

If result.DataSets.Count > 0 Then
	Dim arrayTime As System.Array = datasets(0).GetValues()
	Dim arrayX As System.Array = datasets(1).GetValues()
	Dim arrayY As System.Array = datasets(2).GetValues()
	Dim arrayZ As System.Array = datasets(2).GetValues()
End If
Execute a time dependent data provider which uses preData and returning the specified elements
[Visual Basic .NET]
Dim elems As Array = New Object() {"Range", "Radial Rate"}
Dim RICdp As IAgDataPrvTimeVar = TryCast(satObj.DataProviders("Relative Motion"), IAgDataPrvTimeVar)
TryCast(RICdp, IAgDataProvider).PreData = "Satellite/Satellite123"
Dim result As IAgDrResult = RICdp.ExecElements("26 Jan 2015 17:00:00.000", "27 Jan 2015 17:00:00.000", 120, elems)
Dim datasets As IAgDrDataSetCollection = result.DataSets

If result.DataSets.Count > 0 Then
	Dim arrayRange As System.Array = datasets(0).GetValues()
	Dim arrayRadialRate As System.Array = datasets(1).GetValues()
End If
Is statistics available for data provider element
[Visual Basic .NET]
Dim dataProvider As IAgDataProvider = TryCast(satellite.DataProviders.GetDataPrvInfoFromPath("LLR State/Fixed"), IAgDataProvider)
		' Calculate statistics from Data Set
If dataProvider.IsStatisticAvailable(AgEStatistics.eMean, "Lat") Then
End If
Is time varying extremum available for data provider element
[Visual Basic .NET]
Dim dataProvider As IAgDataProvider = TryCast(satellite.DataProviders.GetDataPrvInfoFromPath("LLR State/Fixed"), IAgDataProvider)
		' Calculate statistics from Data Set
If dataProvider.IsTimeVarExtremumAvailable(AgETimeVarExtremum.eMax, "Lat") Then
End If

See Also

© 2024 Analytical Graphics, Inc. All Rights Reserved.