AGI STK Objects 11 Send comments on this topic.
IAgDataPrvTimeVar Interface
Windows






Windows & Linux

Description

Represents the Time-dependent Data Provider (for instance satellite position).

Object Model








Public Methods

Public Method ExecCompute the data; time-dependent data providers require an interval and a time step. Start/Stop use DateFormat Dimension. StepTime uses Time Dimension.
Public Method ExecElementsCompute the data and return just the indicated data elements; time-dependent data providers require an interval and a time step.
Public Method ExecElementsNativeTimesCompute the data for default; return just the indicated data elements; default time-dependent data providers require an interval. Start/Stop use DateFormat Dimension.
Public Method ExecNativeTimesCompute the data for default; default time-dependent data providers require an interval. Start/Stop use DateFormat Dimension.
Public Method ExecSingleComputes the data given a single Time. SingleTime uses DateFormat Dimension.
Public Method ExecSingleElementsComputes the data given a single Time and return just the indicated data elements. SingleTime uses DateFormat Dimension.
Public Method ExecSingleElementsArrayComputes the data given a single Time array and return just the indicated data elements. SingleTime uses DateFormat Dimension.

Example

Compute an access and get constraint data from data provider
[C#]Copy Code
// Compute Access between the facility and the satellite 
IAgStkObject sat1 = root.GetObjectFromPath("Satellite/Satellite1"); 
IAgStkObject fac1 = root.GetObjectFromPath("Facility/Facility1"); 
IAgStkAccess access = sat1.GetAccessToObject(fac1); 
access.ComputeAccess(); 
 
// Get the access intervals 
IAgIntervalCollection accessIntervals = access.ComputedAccessIntervalTimes; 
 
// Set unit preferences - change to get your preferred units 
root.UnitPreferences.SetCurrentUnit("Distance""km"); 
root.UnitPreferences.SetCurrentUnit("Angle""deg"); 
root.UnitPreferences.SetCurrentUnit("Time""sec"); 
root.UnitPreferences.SetCurrentUnit("DateFormat""UTCG"); 
 
// Extract the access intervals and the range information for each access interval 
Array dataPrvElements = new object[] 
    { 
        "Time""FromAngularRate""FromRange" 
    }; 
 
IAgDataPrvTimeVar dp = access.DataProviders["Constraint Data"as IAgDataPrvTimeVar; 
 
for (int index0 = 0; index0 < accessIntervals.Count; ++index0) 

    object startTime = null, stopTime = null
 
    accessIntervals.GetInterval(index0, out startTime, out stopTime); 
 
    Console.WriteLine("Access Interval #{0} - Start={1} Stop={2}", index0, startTime, stopTime); 
 
    IAgDrResult result = dp.ExecElements(startTime, stopTime, 60ref dataPrvElements); 
 
    Array timeValues = result.DataSets[0].GetValues(); 
    Array fromAngularRateValues = result.DataSets[1].GetValues(); 
    Array fromRangeValues = result.DataSets[2].GetValues(); 
 
    for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1) 
    { 
        Console.WriteLine("{0}: FromAngularRate={1} FromRange={2}"
            timeValues.GetValue(index1), 
            fromAngularRateValues.GetValue(index1), 
            fromRangeValues.GetValue(index1)); 
    } 
 
    Console.WriteLine(); 

 

Execute a time dependent data provider and request all elements for the specified time interval
[C#]Copy Code
IAgDataPrvTimeVar dpInfo = facility.DataProviders["Lighting AER"as IAgDataPrvTimeVar; 
IAgDrResult resInfo = dpInfo.Exec( 
    "1 Jan 2012 12:00:00.000"
    "1 Jan 2012 12:00:20.000"
    60.0); 
 

Execute a time dependent data provider and returning all elements for a single time
[C#]Copy Code
IAgDataPrvTimeVar dp = satellite.DataProviders["Precision Passes"as IAgDataPrvTimeVar; 
IAgDrResult resInfo = dp.ExecSingle("1 Jan 2012 12:00:00.000"); 
 

Execute a time dependent data provider and returning the specified elements at the specified time
[C#]Copy Code
Array times = new object[] 
              { 
                  "1 Jan 2012 12:00:00.000""1 Jan 2012 12:00:20.000"
                  "1 Jan 2012 12:00:40.000" 
              }; 
Array elems = new object[] 
              { 
                  "Time"
                  "Precision Pass Number" 
              }; 
 
IAgDataPrvTimeVar dp = satellite.DataProviders["Precision Passes"as IAgDataPrvTimeVar; 
 
// ExecSingleElementsArray expects each safe array parameter to be one dimensional, 
// all arrays must have the same length 
IAgDrTimeArrayElements resInfo = dp.ExecSingleElementsArray(ref times, ref elems); 
 

Execute a time dependent data provider and returning the specified elements for a single time
[C#]Copy Code
Array elems = new object[] 
              { 
                  "Time"
                  "Precision Pass Number" 
              }; 
 
IAgDataPrvTimeVar dp = satellite.DataProviders["Precision Passes"as IAgDataPrvTimeVar; 
 
// ExecSingleElements expects as the second parameter a one dimensional array of element names 
IAgDrResult resInfo = dp.ExecSingleElements("1 Jan 2012 12:00:00.000"ref elems); 
 

Compute an access and get constraint data from data provider
[Visual Basic .NET]Copy Code
' Compute Access between the facility and the satellite
Dim sat1 As IAgStkObject = root.GetObjectFromPath("Satellite/Satellite1")
Dim fac1 As IAgStkObject = root.GetObjectFromPath("Facility/Facility1")
Dim access As IAgStkAccess = sat1.GetAccessToObject(fac1)
access.ComputeAccess()

' Get the access intervals
Dim accessIntervals As IAgIntervalCollection = access.ComputedAccessIntervalTimes

' Set unit preferences - change to get your preferred units
root.UnitPreferences.SetCurrentUnit("Distance", "km")
root.UnitPreferences.SetCurrentUnit("Angle", "deg")
root.UnitPreferences.SetCurrentUnit("Time", "sec")
root.UnitPreferences.SetCurrentUnit("DateFormat", "UTCG")

' Extract the access intervals and the range information for each access interval
    accessIntervals.GetInterval(index0, startTime, stopTime)
    Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)

Execute a time dependent data provider and request all elements for the specified time interval
[Visual Basic .NET]Copy Code
Dim dpInfo As IAgDataPrvTimeVar = TryCast(facility.DataProviders("Lighting AER"), IAgDataPrvTimeVar)
Dim resInfo As IAgDrResult = dpInfo.Exec("1 Jan 2012 12:00:00.000", "1 Jan 2012 12:00:20.000", 60)

Execute a time dependent data provider and returning all elements for a single time
[Visual Basic .NET]Copy Code
Dim dp As IAgDataPrvTimeVar = TryCast(satellite.DataProviders("Precision Passes"), IAgDataPrvTimeVar)
Dim resInfo As IAgDrResult = dp.ExecSingle("1 Jan 2012 12:00:00.000")

Execute a time dependent data provider and returning the specified elements at the specified time
[Visual Basic .NET]Copy Code
Dim resInfo As IAgDrTimeArrayElements = dp.ExecSingleElementsArray(times, elems)

Execute a time dependent data provider and returning the specified elements for a single time
[Visual Basic .NET]Copy Code
Dim resInfo As IAgDrResult = dp.ExecSingleElements("1 Jan 2012 12:00:00.000", elems)

See Also

CoClasses that Implement IAgDataPrvTimeVar

© 2018 Analytical Graphics, Inc. All Rights Reserved.